更新实体但不更新空值属性

时间:2015-05-26 13:57:45

标签: entity-framework entity-framework-6

我有一个客户,我想在存储库中更新。

var customer = new Customer{ Name = "Test" }

客户还有更多属性为null,因为我之前没有将它们加载到客户端。因此,这些属性具有所有默认值,如null or 0

我与最新的EF 6有什么关系,仅更新属性名称并且不会覆盖客户的其他属性?

1.。)我如何查询/更新客户?

2。)如果客户有集合并且他已经更改了某些会议的某些属性 - 但不是所有属性 - 会如何成为覆盖行为会怎样?

更新伪代码

Open context

Get customer

Close context


Open context

Update customer.name

SAveChanges

Close context

不保存custom.name,为什么?

2 个答案:

答案 0 :(得分:0)

假设您已经生成了您的模型,并且其名称为" MyEntities"如果要更新现有产品,则应该拥有客户ID。这是使用c#的解决方案。

using(MyEntities db = new MyEntities()) {
    //this will retreieve the customer based on ID
    Customer cust = db.Customers.FirstOrDefault(c => c.CustomerID == custID);
    //you can update each column
    cust.Name = "Test";

    //save the changes to the entity
    db.SaveChanges();
}

答案 1 :(得分:0)

如果没有首先获得整个网站,你就无法本机化,这显然是2分贝命中率。

但是你可以使用你想要的扩展: https://github.com/loresoft/EntityFramework.Extended/wiki/Batch-Update-and-Delete