当我只想更新几个字段时,我想知道哪种是更新实体的最佳方式。
我正在使用 C# 4.0 和 EF 4.4。
第一种方法是:
1.-我从数据库加载寄存器。2.- 我修改了属性。实体在上下文中的情况,仅是尝试更新已更改的属性。3.- 保存更改。
第二个选项是:
1.- 我将我的实体附加到上下文 2.- 标记我想以这种方式修改的属性:
myContext.Entries(myEntity).Property("myField").IsModified = true;
3.- 保存更改。
在第一种方式中,我进行查询以获取实体和其他以保存更改,在第二种方式中,我仅在保存更改时使用查询。
但是,在我的情况下,我有一个不想修改的无空属性,因此当我创建我的存根实体以附加到上下文时,将我想要的属性标记为已修改并保存更改,我得到了验证例外。
所以我想知道当我在实体中没有空属性时,我可以使用第一种方式还是需要使用第二种方式。
我认为在性能上它会存在差异,因为我不需要从数据库加载寄存器。是真的吗?
谢谢。