Я нахожусь в процессе переключения очень старой реализации edmx / ObjectContext EF6 на 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 был установщиком-получателем, а установщик-установщикомделал это:
((IEntityWithRelationships)this).RelationshipManager
.GetRelatedReference<Phone>("Model.fk_Person_Phone", "Person")
.Value = value;
Есть ли способ заставить свойство virtual
nav работать аналогично старому методу и присоединить новый объект к базе данных?