我正在将一个非常老的EF6 edmx / ObjectContext实现切换到DbContext / POCO。我能够生成POCO模型,并且所有读取操作现在似乎都可以正常工作。
我的问题是我有成千上万行执行以下操作的代码:
var person = db.Persons.Single(x=> x.Id = 45);
var phone = new Phone { Person = person, Number = "123-456-7890"};
在旧的edmx / ObjectContext世界中,当我设置Person = person
时,phone
的状态将为Added
。
在新的DbContext / POCO世界中,此集合完全无效,状态保持为Detached
。
新的模型代码正在使用类似的方法来创建导航属性:
public virtual Person Person { get; set; }
旧的edmx代码是一个getter设置程序,而该设置程序正在这样做:
((IEntityWithRelationships)this).RelationshipManager
.GetRelatedReference<Phone>("Model.fk_Person_Phone", "Person")
.Value = value;
有什么方法可以使virtual
nav属性类似于旧方法,并将新对象附加到数据库吗?