C# 使用实体框架更新整个记录
我这里有一个工作代码C# 使用实体框架更新整个记录,c#,entity-framework,entity-framework-5,ef-database-first,C#,Entity Framework,Entity Framework 5,Ef Database First,我这里有一个工作代码 using (var db = new MyContextDB()) { var result = db.Books.SingleOrDefault(b => b.BookNumber == bookNumber); if (result != null) { result.MyColumnName= "Some new value"; db.SaveChanges(); } } 但是我有很多属性需要改
using (var db = new MyContextDB())
{
var result = db.Books.SingleOrDefault(b => b.BookNumber == bookNumber);
if (result != null)
{
result.MyColumnName= "Some new value";
db.SaveChanges();
}
}
但是我有很多属性需要改变。所以我试着做一些类似的事情
result= newResult;
db.SaveChanges();
但这是行不通的。有没有办法用一张新唱片来替换一张唱片?我想,你不可能这么容易做到 您应该在Book类中创建一个方法,在其中更改所有属性
result.Update(预订新属性);
db.SaveChanges();
或
result.Update(字符串prop1、int prop2等);
db.SaveChanges();
我建议使用。您可以这样使用它:
var result = db.Books.SingleOrDefault(b => b.BookNumber == bookNumber);
if (result != null)
{
Mapper.Map(newResult, result);
db.SaveChanges();
}
请注意,您可能需要正确配置Automapper(例如,在更新时忽略Id属性)