Может ли SimpleMembership использоваться с EF model-first? Когда я пытаюсь, я получаю "Невозможно найти запрошенный поставщик данных .NET Framework", когда я вызываю WebSecurity.InitializeDatabaseConnection.
Другими словами: я не могу заставить вызов WebSecurity.InitializeDatabaseConnection
работать, когда в строке подключения используется поставщик System.Data.EntityClient
(как и при использовании парадигмы model-first).
Чтобы воспроизвести проблему, создайте приложение MVC 4 и замените класс сущности code-first UserProfile (который вы получаете бесплатно с шаблоном MVC 4) с помощью модели Пользовательский класс, созданный в конструкторе сущностей:
- Создайте приложение MVC 4 в VS 2012 и добавьте новые, пустые данные Entity Модель.
- Добавьте новую модель с именем
User
в модель с полями дляId,
UserName, and FullName
. Итак, на данный момент объект данныхUser
сопоставлен с таблицейUsers
и доступен через фанковое соединение строка, в которой используется поставщикSystem.Data.EntityClient
. - Убедитесь, что EF может получить доступ к объекту
User
. Один простой способ сделать то есть для выравнивания контроллера пользователей на основе таблицы User и связанный с ним DbContext. - Отредактируйте файл
AccountModels.cs
, чтобы удалить классUserProfile
и связанный с ним классUsersContext
. Заменить ссылки на (теперь отсутствует)UserProfile
иUsersContext
классы со ссылками к вашему новому классу User и связанному с ним классуDbContext
. - Переместите вызов в InitializeDatabaseConnection из Класс InitializeSimpleMembershipAttribute для фильтра Метод Application_Start в Global.asax.cs. Пока вы на нем, изменить аргументы, чтобы использовать новое соединение пользователя строка, имя таблицы и имя столбца UserId.
- Удалить (больше не используется)
InitializeSimpleMembershipAttribute
класс и ссылки на него.
При запуске воспроизведения он получит Исключение при вызове InitializeDatabaseConnection.
Боб