我正在看这个问题:ADO.net Entity Framework: Update only certian properties on a detached entity .这对我来说是一个很大的帮助。我现在知道我需要在对其进行更改之前附加一个实体。但是我该怎么做:
我有一个 MVC 网站,一个包含以下字段的客户更新页面:ID、名称、地址等。我的 MVC 正在将其解析为 Customer 实体。我如何执行以下操作:
最佳答案
尝试这样的事情(伪代码,我可能记错了一些方法名称):
public void Update(Customer entity)
{
using (MyContext ctx = new MyContext())
{
// Create a stub entity and attach it
Customer db = new Customer {ID = entity.ID};
ctx.Customers.Attach(db); // ctx.AttachTo("Customers", db) in 3.5 sp1
// ApplyPropertyChanges in 3.5 Sp1
ctx.ApplyCurrentValues(entity);
ctx.SaveChanges();
}
...
}
此代码使用 Stub Entity诡计。如果您有关系需要告诉 EF 有关原始实体的更多信息,请查看上面的博客文章了解更多信息,因为您也可以使用 stub 来做到这一点。
或者,如果您根本不关心并发性,您可以这样做:
public void Update(Customer entity)
{
using (MyContext ctx = new MyContext())
{
// pull the entity from the database
Customer db = ctx.Customers.First(c => c.ID == entity.ID);
// ApplyPropertyChanges in 3.5 Sp1
ctx.ApplyCurrentValues(entity);
ctx.SaveChanges();
}
}
希望这可以帮助
亚历克斯·詹姆斯
Entity Framework Tips
关于.net - EntityFramework .net 4 用一个简单的方法更新实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1343530/