ASP.Net EF не обновляет отношения - PullRequest
0 голосов
/ 15 декабря 2010

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

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 = "Независимо от того, что", сохраняется в базе данных, никаких проблем).

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

С уважением,

Тревор

1 Ответ

0 голосов
/ 15 июня 2011

Моя ошибка.Я включил LazyLoading.

...