0

У меня есть таблица, которая содержит кучу активов, которые организованы в несколько иерархии, так что таблица имеет отношение «многие ко многим» с самим собой (каждый актив может иметь несколько дочерних элементов И несколько родителей). Я использую следующий код, чтобы переназначить родителей дочерних активов. Я понимаю, что код кажется излишним; прежде чем я просто использовал дочерний объект, чтобы внести изменения в отношения, но чтобы быть тщательным, я решил попробовать изменить отношения как с дочерним, так и с родительским объектом.ASP.Net EF не обновляет отношения

int NewParentID = Int32.Parse(e.CommandArgument.ToString()); 
Asset NewParent = DataContext.Assets.Where(asset => asset.AssetID == NewParentID).First(); 
Asset Child = DataContext.Assets.Where(asset => asset.AssetID == AssetID).First(); 
IEnumerable<Asset> OldParents = Child.ParentAssets.Where(asset => asset.AssetType == Child.OrganizationalParentAssetType); 
foreach (Asset a in OldParents) 
{ 
    a.ChildAssets.Remove(Child); 
    Child.ParentAssets.Remove(a); 
} 
Child.ParentAssets.Add(NewParent); 
NewParent.ChildAssets.Add(Child); 
DataContext.SaveChanges(); 

Может кто-нибудь придумать причину, почему DataContext.SaveChanges() не будет сохраняться отношения изменения, которые вносятся в этом коде? Изменение простых значений свойств работает очень хорошо (например, Child.AssetName = «Независимо», сохраняется в базе данных, никаких проблем).

Любая помощь очень ценится!

С уважением,

Trevor

ответ

Смежные вопросы