更新导航属性

时间:2014-01-10 21:46:37

标签: entity-framework

我是Entity框架的新手,当我想用​​导航属性更新现有实体时,我很困惑。 这是我正在使用的Model类。

public class Institution
{
    [Key]
    public int ID { get; set; }
    public int Code { get; set; }
    public string Name { get; set; }
    public string Email { get; set; }
    public string Key { get; set; }
    public string PreferURL { get; set; }
    public virtual ICollection<EntitlementEntity> Entitlement{ get; set; }
}

我在SCOTT HANSELMAN(http://www.hanselman.com/blog/ASPNETWireFormatForModelBindingToArraysListsCollectionsDictionaries.aspx)的自动反序列化编辑动作中做了一个MVC HttpPost。

如果我忽略表单中的导航属性ICollection<EntitlementEntity> Entitlement,一切正常;一旦被包括在内,就会抛出异常。

{"An object with the same key already exists in the ObjectStateManager.
 The ObjectStateManager cannot track multiple objects with the same key."}

我终于得到了如下工作。 https://gist.github.com/pwang2/8363266

我不愿意做的是我们已经拥有原始机构实体与导航属性的所有关系,但在这里我必须再次为每个权利实体设置机构关系。

我的问题是:

  1. 是否可以同时更新机构实体及其导航属性。
  2. 如果没有,如果我想要更集中的UI结果,允许同时更新机构信息及其权利,那么最佳做法是什么?

0 个答案:

没有答案