使用 entity framework 更新整条记录
Update an entire record using entity framework
我这里有一个工作代码。
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 class 中创建一个方法,您可以在其中更改所有属性。
result.Update(Book newProperties);
db.SaveChanges();
或
result.Update(string prop1, int prop2, etc.);
db.SaveChanges();
我建议使用 Automapper。你可以这样使用它:
var result = db.Books.SingleOrDefault(b => b.BookNumber == bookNumber);
if (result != null)
{
Mapper.Map(newResult, result);
db.SaveChanges();
}
注意,您可能需要正确配置 Automapper(例如,在更新时忽略 Id 属性)
我这里有一个工作代码。
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 class 中创建一个方法,您可以在其中更改所有属性。
result.Update(Book newProperties);
db.SaveChanges();
或
result.Update(string prop1, int prop2, etc.);
db.SaveChanges();
我建议使用 Automapper。你可以这样使用它:
var result = db.Books.SingleOrDefault(b => b.BookNumber == bookNumber);
if (result != null)
{
Mapper.Map(newResult, result);
db.SaveChanges();
}
注意,您可能需要正确配置 Automapper(例如,在更新时忽略 Id 属性)