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 = "Whatever", 데이터베이스에 유지됨, 문제 없음).

도움을 주시면 감사하겠습니다.

감사합니다,

트레버

답변

0

내 실수. LazyLoading을 활성화했습니다.

관련 문제