0

Ich habe einen Arbeitscode hier.Aktualisieren Sie einen gesamten Datensatz mit 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(); 
    } 
} 

Aber ich habe viele Eigenschaften zu ändern. So versuchte ich für etwas wie

  result= newResult; 
      db.SaveChanges(); 

Aber das funktioniert nicht. Gibt es eine Idee, einen Rekord durch einen neuen zu ersetzen?

Antwort

0

Ich denke, Sie können das nicht so leicht tun.

Sie sollten eine Methode in Ihrer Book-Klasse erstellen, in der Sie alle Eigenschaften ändern.

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

oder

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

würde ich empfehlen, Automapper zu verwenden. Sie können es wie folgt verwendet werden: (. Z Id Eigenschaften zu ignorieren, wenn die Aktualisierung)

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

Hinweis, die wahrscheinlich müssen Sie richtig AutoMapper konfigurieren

Verwandte Themen