0

当我只想更新几个字段时,我想知道哪种是更新实体的最佳方式。

我正在使用 C# 4.0 和 EF 4.4。

第一种方法是:

1.-我从数据库加载寄存器。2.- 我修改了属性。实体在上下文中的情况,仅是尝试更新已更改的属性。3.- 保存更改。

第二个选项是:

1.- 我将我的实体附加到上下文 2.- 标记我想以这种方式修改的属性:

myContext.Entries(myEntity).Property("myField").IsModified = true;

3.- 保存更改。

在第一种方式中,我进行查询以获取实体和其他以保存更改,在第二种方式中,我仅在保存更改时使用查询。

但是,在我的情况下,我有一个不想修改的无空属性,因此当我创建我的存根实体以附加到上下文时,将我想要的属性标记为已修改并保存更改,我得到了验证例外。

所以我想知道当我在实体中没有空属性时,我可以使用第一种方式还是需要使用第二种方式。

我认为在性能上它会存在差异,因为我不需要从数据库加载寄存器。是真的吗?

谢谢。

4

0 回答 0