我有一个客户,我想在存储库中更新。
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,为什么?
答案 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