0

我有一張表,其中包含一堆資產,這些資產被組織到多個層次結構中,以便表與其本身具有多對多的關係(每個資產可以有多個子元素AND多個父母)。我正在使用以下代碼重新分配子資產的父母。我意識到代碼似乎是多餘的;在我簡單地使用子對象來改變關係之前,我想決定嘗試改變子對象和父對象之間的關係。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 =「無論」)是否保留到數據庫中,沒有問題)。

任何幫助非常感謝!

問候,

特雷弗

回答

0

我的錯。我啓用了LazyLoading。