EF6, DbContext / POCO установка свойства виртуальной навигации для присоединения нового объекта: возможно? - PullRequest
1 голос
/ 02 июля 2019

Я нахожусь в процессе переключения очень старой реализации 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 работать аналогично старому методу и присоединить новый объект к базе данных?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...