Членство в Asp.Net - Поставщики в Entity Framework 4 - PullRequest
7 голосов
/ 13 сентября 2010

У меня есть веб-сайт, использующий членство в ASP.NET, Entity Framework 4 и MS SQL 2008 для БД.

Хотелось бы знать, будет ли при использовании членства в ASP.NET взаимодействие с базой данных проходить с использованием Entity Framework?

Спасибо за вашу помощь!

Ответы [ 3 ]

10 голосов
/ 19 ноября 2010

Проголосовал за ответ Мусы, чтобы убрать негатив.Там нет упоминания о провайдере нестандартного членства, но это не значит, что это не ответ.

Он прав, нет специального провайдера EF4, поставляемого с платформой, но вы можете создать свой собственный.

Это фактически консолидирует проблемный домен, поскольку вы можете ЧИСТО связывать пользователей с остальными объектами вашей сущности, а не рассматривать членство как отдельный черный ящик, вокруг которого вы должны давать чаевые.

Способ сделать это - унаследовать от MembershipProvider и реализовать абстрактные методы.

Как только вы это сделаете, вы можете делать с пользователями все, что захотите, и т. Д., Не опасаясь взлома таблиц SQLMembership и сохраненияпроцедуры, которые вы получаете по умолчанию - которые мне не нравятся, потому что они ужасны.

Я только что сделал это, используя свою собственную модель EF4, мою собственную реализацию пользователей и т. д. Я использовал примеркод, который пришел с этим видео - http://www.asp.net/general/videos/how-do-i-create-a-custom-membership-provider.Кстати, если вы используете этот пример кода как есть, не упустите пару опечаток в именах хранимых процедур!

8 голосов
/ 13 сентября 2010

Если вам нужен пользовательский поставщик членства, вам просто нужно создать класс, который наследует абстрактный класс MembershipProvider.Затем вам нужно будет реализовать абстрактные методы, такие как ValidateUser, UpdateUser, GetUser и т. Д. Вы можете использовать EntityFramework при реализации методов настраиваемого поставщика членства.

Ниже в документах реализован пользовательский поставщик членства с использованием odbc.Вы можете использовать вашу EntityModel вместо odbc.

http://msdn.microsoft.com/en-us/library/44w5aswa.aspx

http://msdn.microsoft.com/en-us/library/6tc47t75.aspx

6 голосов
/ 23 сентября 2010

Нет, SqlMembership, а также другие провайдеры в стеке Sql используют хранимые процедуры, вызываемые напрямую.

Вы можете, если хотите, построить концептуальную модель EF поверх вашей базы данных aspnet_db, еслиВы хотели бы изучить его или взаимодействовать с ним.

Но позвольте мне настоятельно рекомендовать вам обращаться с ним только для чтения, если вы точно не знаете, что именно вы хотите обновить или удалить.

...