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