Могу ли я использовать Entity Framework с членством в ASP.NET? - PullRequest
10 голосов
/ 06 марта 2009

Я создаю (на самом деле, заново создаю) приложение, в котором уже есть пользовательские и другие данные в базах данных MS-Access. Данные будут перемещены на SQL Server, и часть этого включает миграцию пользователей. Я хочу использовать EF для ORM, и я почти уверен, что знаю, какая модель данных будет в SQL Server. Я новичок в EF, но не в ASP.NET, и я хотел бы воспользоваться функциями членства в ASP.NET. Я думаю о нескольких способах сделать это и хотел бы получить несколько советов. До сих пор я провел лишь небольшое исследование по этой идее, может быть, на нее ответили в другом месте. Итак, здесь идет группа связанных вопросов.

  1. Может ли EF работать напрямую с членством ASP.NET через некоторый класс или пространство имен, о которых я не знаю?

  2. Если я перевожу пользователей в систему Membership, чтобы выровнять их идентификаторы пользователя с данными в других таблицах, следует ли мне создать другой набор таблиц для пользовательских данных поверх таблиц aspnet_ * в виде DotNetNuke?

  3. Я хочу избежать ситуации, когда я использую встроенные функции членства только для аутентификации пользователя и переключаюсь в контекст EF, когда работаю с данными, помеченными пользователем. Кажется неуклюжим выводить информацию пользователя для привязки к столбцу в GridView, заходя в членство пользователя для каждой строки, но, может быть, это то, что нужно? Нужно ли мне смириться с этим и реплицировать классы членства в EF для целей поиска данных?

  4. Я думал о том, чтобы, возможно, внедрить какого-либо провайдера EF для членства, полагая, что, возможно, тогда провайдер мог бы сидеть внутри общей модели данных EF. Это сумасшедший разговор? (Я никогда раньше не писал своего собственного провайдера)

Не стесняйтесь сказать мне, что я не имею никакого смысла.

Ответы [ 2 ]

5 голосов
/ 07 марта 2009

Почему бы не сделать это наоборот? Вы можете реализовать свой собственный членский членство для asp.net, которое использует модель, которую вы хотите / нуждаетесь.

Если необходимые функции не полностью соответствуют встроенной реализации членства в asp.net, вы можете просто свернуть своего собственного провайдера. Если вы будете использовать только пару функций, вам нужно будет реализовать только пару методов (вам не нужно заполнять реализацию для всех методов). Если вам нужно больше функций, чем он поддерживает, использование поставщика членства может помешать вам.

2 голосов
/ 06 марта 2009
  1. Да, но мы не отображаем таблицы членства. Вы не должны предполагать использование поставщика членства SQL.
  2. Мы отображаем личность пользователя, а не идентификатор БД. Тонкий, но важный. Опять же, помните, что есть другие поставщики членства (например, авторизация домена).
  3. Можете ли вы уточнить вопрос? Вам не нужно будет копировать всю информацию о членстве в вашей модели EF, но вам потребуется список известных идентификаторов.
  4. Нет, совсем не сумасшедший, но сложный и, вероятно, ненужный.
...