EF6,DbContext / POCO设置虚拟导航属性以附加新对象:可能吗?

时间:2019-07-02 16:25:56

标签: entity-framework-6

我正在将一个非常老的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属性类似于旧方法,并将新对象附加到数据库吗?

0 个答案:

没有答案