Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Entität in EF4 löschen, ohne die gesamte Entität zu laden

Wenn Sie die Eigenschaft nicht laden möchten, müssen Sie EF austricksen, damit es denkt, dass das zugehörige DataItemDetail wird geladen.

var detailItem = new DataItemDetail { Id = d.Id }; 
_db.DataItemDetails.Attach(detailItem);
_db.DataItems.DeleteObject(d);
_db.SaveChanges();

Das Problem hier ist, dass die Tabellenaufteilung eine 1:1-Beziehung verwendet und EF weiß, dass es, wenn es ein Ende der Beziehung löscht, auch das andere Ende löschen sollte, aber weil Sie das andere Ende nicht geladen haben, kann es dies nicht tun.