Переместить хранилище удостоверений ASP.NET в базу данных EF Sql

По умолчанию пользовательские данные ASP.NET Identity хранятся в файле mdf.

Я хочу сохранить данные в базе данных Sql, чтобы я изменил строку подключения по умолчанию в моем web.config на мое соединение на основе EF:

 <add name="DefaultConnection" connectionString="metadata=res://*/Models.StartifyModel.csdl|res://*/Models.StartifyModel.ssdl|res://*/Models.StartifyModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=MYPC\SQLEXPRESS;initial catalog=mydb;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />

Теперь я получаю сообщение об ошибке The entity type ApplicationUser is not part of the model for the current context., как только хочу зарегистрировать пользователя.

Я использую шаблон проекта MVC5 по умолчанию для VS2013.


person daniel    schedule 26.10.2013    source источник


Ответы (1)


Попробуйте указать строку подключения в формате:

<add name="DefaultConnection" connectionString="Data Source=127.0.0.1, 1433;Initial Catalog=YourDB;User Id=XXXX;Password=XXXXX;Asynchronous Processing=True;Encrypt=False;TrustServerCertificate=True;Persist Security Info=True" providerName="System.Data.SqlClient" />

А затем убедитесь, что в Models/IdentityModels.cs у вас есть

public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
    {
        public ApplicationDbContext()
            : base("DefaultConnection")
        {
        }
person Piotr Stulinski    schedule 27.10.2013
comment
У меня все та же проблема с этой строкой подключения. - person daniel; 27.10.2013
comment
Я создал новый проект, и теперь он работает. У меня возникла проблема с AccountController. - person daniel; 27.10.2013
comment
Если вы должны были изменить строку подключения, отличную от EF, в соответствии с вашим примером, вместо этого вы получите "Keyword not supported: 'data source'", так как это недопустимая строка подключения для подключения EF (в вопросе была указана база данных EF). Это неправильный ответ на заданный вопрос и только запутает проблему. Пожалуйста, измените или удалите его. - person Gone Coding; 20.11.2013
comment
В этом весь смысл. Переключение на обычное соединение для передачи данных заставляет это работать. Вы по-прежнему можете вставлять свои таблицы БД в свою модель данных EF и получать к ним доступ через этот контекст. - person mlibby; 31.01.2016