我是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
我不愿意做的是我们已经拥有原始机构实体与导航属性的所有关系,但在这里我必须再次为每个权利实体设置机构关系。
我的问题是: