【问题标题】:ASP.Net EF not updating relationshipsASP.Net EF 不更新关系
【发布时间】:2010-12-14 23:01:39
【问题描述】:

我有一个表,其中包含一堆资产,这些资产被组织成多个层次结构,因此该表与自身具有多对多关系(每个资产可以有多个子项和多个父项)。我正在使用以下代码重新分配子资产的父母。我意识到代码似乎是多余的;之前我只是简单地使用子对象来改变关系,但为了彻底,我决定尝试同时改变子对象和父对象的关系。

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",被持久化到数据库中,没有问题)。

非常感谢任何帮助!

问候,

特雷弗

【问题讨论】:

    标签: asp.net entity-framework-4 entity-relationship object-persistence


    【解决方案1】:

    我的错。我启用了延迟加载。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-19
      • 2011-10-06
      • 1970-01-01
      • 1970-01-01
      • 2015-10-18
      • 1970-01-01
      • 2012-04-08
      • 1970-01-01
      相关资源
      最近更新 更多