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 =「無論」)是否保留到數據庫中,沒有問題)。
任何幫助非常感謝!
問候,
特雷弗