0

ここに作業コードがあります。エンティティフレームワークを使用してレコード全体を更新してください

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(); 

しかし、これは動作していません。レコードを新しいものに置き換える考えはありますか?

答えて

0

私はそう簡単にはできないと思います。

Bookクラスですべてのプロパティを変更するメソッドを作成する必要があります。

result.Update(Book newProperties); 
db.SaveChanges(); 

または

result.Update(string prop1, int prop2, etc.); 
db.SaveChanges(); 
0

私はAutomapperを使用することをお勧めします。 (例えば更新する際にIDプロパティを無視する)は、おそらくあなたが適切Automapperを設定する必要があります

var result = db.Books.SingleOrDefault(b => b.BookNumber == bookNumber); 
if (result != null) 
{ 
    Mapper.Map(newResult, result); 
    db.SaveChanges(); 
} 

お知らせ、

:あなたはこのようにそれを使用することができます
関連する問題