2014-01-04 2 views
1

Я использую модели Сначала создать свою базу данных с Entity Framework 6.Entity Framework Model First и наследование

У меня есть класс следующим образом:

public partial class User : IdentityUser 
{ 
} 

Где Пользователь класс, порожденный EF в дизайнер. Однако как я могу сопоставить в унаследованных свойствах пользователя столбцы таблицы?

Моя самая большая проблема в том, что, несмотря на то, что я добавляю наследование IdentityUser к классу/таблице пользователя, когда я возвращаюсь в конструктор EF, свойства IdentityUser не отображаются.

ответ

0

Если вы используете неабстрактный базовый класс и не указываете [Таблица] на своем пользователе, и поэтому ваша карта User и IdentityUser сопоставляется с одной таблицей, то вы используете TPH (таблица для иерархии: Включить полиморфизм путем денормализации схемы SQL и использовать столбец дискриминатора типов, который содержит информацию типа).

Итак, похоже, что это тот, который вам нужен. Вам не нужно ничего делать в Code First, чтобы включить TPH. Это стратегия сопоставления наследования по умолчанию. Просто нарисуйте его как любой другой объект, и все готово! Пример

Mapping:

enter image description here

enter image description here

+0

Но как инструмент отображения БД на самом деле узнать, унаследованных свойств на карту? В настоящее время, несмотря на расширение Userity IdentityUser, свойства IdentityUser не отображаются в базе данных и не отображаются в средстве моделирования EF. С кодом First он будет получать свойства, когда я делал базу данных обновлений - – William

+0

Он будет изучать механизм отражения, который является частью CLR. Ах, ваши свойства не появляются! Я пропустил это. Итак, это еще один вопрос, я думаю, вы должны упомянуть об этом в своем первоначальном вопросе. –

+0

Я добавил примечание в конце моего первоначального вопроса - – William

Смежные вопросы