Может ли 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.
Боб