Entity Framework CodeFirst Несколько типов пользователей - PullRequest
1 голос
/ 21 сентября 2011

У меня есть задача собрать приложение для регистрации пользователя.У меня есть 3 типа пользователей (профили)

1. "Normal" user
2. "Company" user
3. "Company2" user - similar like 2. but with few additional fields..

Все пользователи делятся определенной информацией, такой как электронная почта и пароль (данные для входа в систему), роль, дата регистрации и т. Д. Итак, япытаюсь «спроектировать» классы для этого типа приложения, используя только подход EF Code First, но безуспешно.

Нужна ли мне таблица (класс) для:

USER - all kind of users with all their Login data (email and password) and UserType
USERTYPE - list of all user types (1,2,3)
USER_DETAILS - details of normal user
COMPANY_DETAILS - details of company
COMPANY2_DETAILS -details of company2

Моя проблемакак ссылаться на таблицу USER с помощью USER_DETAILS, COMPANY_DETAILS, COMPANY2_DETAILS.Я надеюсь, что вы понимаете мою проблему:)

Мои классы (управление пользователями и профиль) реализованы как http://codefirstmembership.codeplex.com/ пример.

Заранее спасибо!

1 Ответ

1 голос
/ 21 сентября 2011

Вы можете использовать обычную модель наследования с Entity Framework.

Я бы просто использовал базовый класс User, который содержит данные для входа (хотя, пожалуйста, не храните пароль в БД, используйте хеш - членство должно сделать это уже для вас) и другая информация пользователя, затем вы можете добавить другой класс CompanyUser, который наследуется от User и содержит дополнительные свойства. Наконец, CompanyUser2 (требуется более точное имя) может наследоваться от CompanyUser.

Имея это в наличии, вы можете использовать различные модели того, как EF отображает ваши классы в таблицы:

1.) Таблица на иерархию

2.) Таблица для каждого типа

3.) Таблица по типу бетона

...