MVC3 Entity Framework, использующий членские отношения по умолчанию - PullRequest
3 голосов
/ 30 мая 2011

Я хочу создать связь между пользовательской таблицей (веб-сайтами) и таблицами aspnet по умолчанию, относящимися к пользователям.

Я использую код в первую очередь, поэтому для большинства отношений FK я бы просто сделал

public ModelName ModelName { get; set; }

При этом EF автоматически создает отношения FK.Очень просто.

Что сбивает с толку, так это самый эффективный способ подключиться к таблице пользователей / участников aspnet.Создаю ли я новую модель Users, которая действует как интерфейс, чтобы я мог реализовать пользовательский код пользователя?

Есть ли лучший способ сделать это, который хорошо вписывается в лучшие практики EF?По сути, я просто хочу связать пользователя с таблицей / моделью Веб-сайтов, чтобы EF мог делать свое дело.

Ответы [ 2 ]

3 голосов
/ 31 мая 2011

«Создаю ли я новую модель Users, которая действует как интерфейс для реализации пользовательского кода пользователя?»

Если вы хотите гибкости, я бы сказал, что это путь. Таким образом, было бы проще, если бы вы захотели в будущем изменить какую-либо другую структуру БД аутентификации.

Например, есть объект «AppUser», в котором соответствующая таблица имеет внешний ключ к столбцу «UserID» таблицы aspnet_Membership. Таким образом, вы можете просто добавить свойства в вашу сущность «AppUser» вместо того, чтобы пытаться изменить структуру таблицы MS (что может быть реальной проблемой). Вы по-прежнему можете взаимодействовать со встроенными классами и функциями MS Membership из своего проекта MVC, используя что-то вроде DLL-библиотеки начального набора MvcMembership.

https://github.com/TroyGoode/MembershipStarterKit

Надеюсь, это поможет!

2 голосов
/ 30 мая 2011

Это имеет несколько предварительных условий:

  • Таблицы ASP.NET должны находиться в той же базе данных, что и ваши собственные таблицы
  • Предыдущее предварительное условие означает, что вы должны либо создать свою базу данных и таблицы вручную(без автоматической генерации кода вначале) или вы должны использовать какой-либо пользовательский инициализатор, который добавит не отображенные таблицы ASP.NET как часть воссоздания базы данных

Если вы хотите, чтобы ваш класс модели имел связь с ASP.NET таблица, вы должны смоделировать таблицу ASP.NET как другой объект.Я не уверен, что вы можете использовать классы ASP.NET для этого, потому что, например, MembershipUser не имеет публичного конструктора без параметров, который требуется для EF.Поэтому вам, скорее всего, потребуется создать дублирующиеся классы и их отображения и использовать эти классы при обращении к сущностям ASP.NET.

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