上下文.Entry(x).State=EntityState.Modified vs context.更新(x)有什么区



context.Entry(x).State = EntityState.Modifiedcontext.Update(x)之间有什么区别?他们似乎做着完全相同的事情。

区别在于相关数据。前者只是设置实体的状态,而后者则通过导航属性对所有可到达的实体递归执行相同的操作。如文档链接中所述:

提示

使用EntityEntry.State属性可以仅设置单个实体的状态。例如,context.Entry(blog).State = EntityState.Modified

因此,如果您没有相关数据(导航属性(,则没有区别,如果您有,然后第一种方法(设置State(可以为您提供更精细的控制(更少的副作用(,而第二种方法(Update(可能会导致意外行为-基本上将所有相关实体及其内容标记为已修改/已添加,然后尝试插入新的或更新大量不应该插入的记录。

最新更新