1
私の機能の1つにParent-Children構造があります。私はEF6を使用しています。Entity Frameworkを使用して単一のメソッドで削除、追加、および更新を行う方法
子レコードを追加/更新することはできましたが、UIから削除された子レコードの一部を削除します。以下は、あなたがリストから子供を削除しようとしているが、あなたはentity.Childrenからそれらを削除するか、dbContext.Childrenからそれらを削除するか必要
using (dbBlinkContext dbContext = new dbBlinkContext())
{
// Add/Update Parent
if (entity.parentID <= 0)
dbContext.Entry(entity).State = System.Data.Entity.EntityState.Added;
else
dbContext.Entry(entity).State = System.Data.Entity.EntityState.Modified;
// Here I want to remove Children that got deleted from UI
var dbChildren = dbContext.Children.Where(x => x.ParentID == entity.ParentID).ToList();
// this code is not working
dbChildren.RemoveAll(c => !entity.Children.Contains(c)) // breaks here saying dbChildren not part of entity...
// Add/Update Children
if (entity.Children.IsNotNull() && entity.Children.Count > 0)
{
foreach (ChildType child in entity.Children)
{
if (Child.ChildID <= 0)
dbContext.Entry(Children).State = System.Data.Entity.EntityState.Added;
else
dbContext.Entry(Children).State = System.Data.Entity.EntityState.Modified;
}
}
dbContext.SaveChanges();
}