gpt4 book ai didi

c# - IDbSet.Add 和 DbEntityEntry.State = EntityState.Added 有什么区别?

转载 作者:可可西里 更新时间:2023-11-01 07:44:47 24 4
gpt4 key购买 nike

在 EF 4.1+ 中,这两行代码之间有区别吗?

dbContext.SomeEntitySet.Add(entityInstance);
dbContext.Entry(entityInstance).State = EntityState.Added;

或者他们做同样的事情?我想知道一个是否会以不同于另一个的方式影响子集合/导航属性。

最佳答案

当您使用 dbContext.SomeEntitySet.Add(entityInstance); 时,此及其所有相关实体/集合的状态设置为已添加,而 dbContext.Entry(entityInstance).State = EntityState.Added; 还将所有相关实体/集合添加到上下文中,但将它们保留为未修改状态。因此,如果您尝试创建的实体有一个相关实体(并且它的值不为空),当您使用 Add 时,它将为该子实体创建一个新对象,而其他方式则不会。

关于c# - IDbSet.Add 和 DbEntityEntry.State = EntityState.Added 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9082922/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com