Я использую EF 4.3 с CodeFirst, и у меня есть модель супертипа / подтипа, похожая на эту:
public Person {
long Id { get; set; }
[Required]
string Name { get; set; }
}
public Costumer : Person {
string SomeData { get; set; }
[Required]
string SomeRequiredData { get; set; }
}
Это упрощенная версия проблемы. Таблицы имеют несколько полей.
Человек может быть «повышен» до потребителя позже в приложении. Таким образом, сначала создается Person, а затем преобразуется в Customer.
Вопрос: после того, как я создаю Person, как я могу «продвинуть» его Продавцу, не создавая (или не воссоздая) новую запись Person?
Если я сделаю:
var costumer = new Costumer {
Id = [same id used before when Person was created],
SomeRequiredData = "Data"
};
Модель выдает ошибку, в которой указано, что имя требуется. От меня не требуется повторять всю необходимую информацию от Person в новом экземпляре Vendor, поскольку она уже есть в исходной записи Person.
Кто-нибудь может помочь?
P.S. Модель настроена на создание 2 отдельных таблиц, по одной для каждого класса ...