我正在使用Entity Framework 4.0,但遇到一个愚蠢的问题,我无法弄清楚。
我有两个表:
实体框架创建了以下两个实体:
我正在使用以下代码来获取联系人并更新该特定联系人的联系人类型:
Contact contact = dbContext.Contacts.Single(c => c.Id == 12345); contact.ContactType.Id = 3;
引发以下异常:
The property 'Id' is part of the object's key information and cannot be modified.
看起来好简单!我不明白!
由框架创建的实体没有contact.ContactTypeId属性。它自动将其删除,并在Contact实体内部创建了ContactType关联。
如您所建议的,使其工作的方法是通过查询数据库并将其分配给contact.ContactType来创建ContactType对象。例如:
Contact contact = dbContext.Contacts.Single(c => c.Id == 12345); ContactType contactType = dbContext.ContactType.Single(c => c.Id == 3); contact.ContactType = contactType;