Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用实体框架更新整个记录_C#_Entity Framework_Entity Framework 5_Ef Database First - Fatal编程技术网

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属性)