2015-12-05 5 views
0

У меня было приложение, в котором использовался поставщик членства Asp.net. Я преобразовал этот проект в EF4 и попытался использовать ту же аутентификацию.Entity Framework и поставщик членства не работают

Я использую старую базу данных для моего соединения как

<add name="Entities1" 
    connectionString="metadata=res://*/DbContext.csdl|res://*/DbContext.ssdl|res://*/DbContext.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=(LocalDB)\v11.0;attachdbfilename=|DataDirectory|\Master.mdf;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" 
    providerName="System.Data.EntityClient" /> 
<add name="PondsMasterEntities" 
    connectionString="metadata=res://*/DbContext.csdl|res://*/DbContext.ssdl|res://*/DbContext.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=(LocalDB)\v11.0;attachdbfilename=|DataDirectory|\PondsMaster.mdf;integrated security=True;connect timeout=30;MultipleActiveResultSets=True;App=EntityFramework&quot;" 
    providerName="System.Data.EntityClient" /> 

А теперь я кончаю с этой ошибкой.

A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 50 - Local Database Runtime error occurred. The specified LocalDB instance does not exist

на

var result = await UserManager.CreateAsync(user, model.Password); 

Но когда я использую, как это. Я могу добавить записи удаления из БД.

private Entities1 db = new Entities1(); 
db.IssueMasterLogs.Add(log); 

Любые мысли?

+0

Вы можете показать свой класс IdentityDbContext (или класс, который вы наследуете от него)? Скорее всего, вы используете другую строку подключения для asp.net идентичности –

+0

общественного класса ApplicationDbContext: IdentityDbContext { общественного ApplicationDbContext() : основание ("DefaultConnection", throwIfV1Schema ложь) { } общественного static ApplicationDbContext Create() { return new ApplicationDbContext(); } } – Techonthenet

+0

Спасибо А. Бурак Эрбора. После изменения соединения DefaultConnection с моим подключением, это привело к этой ошибке. Тип сущности ApplicationUser не является частью модели для текущего контекста – Techonthenet

ответ

2

Похоже, вы используете первый подход к базе данных и существующую базу данных для проекта, использующего идентификатор ASP.Net. По умолчанию Identity (V2) работает с первым подходом к коду, создавая необходимые таблицы в базе данных. Обычно из-за этого у пользователей заканчивается отдельная строка соединения для Identity (хотя обе строки подключения указывают на одну и ту же базу данных).

В вашем случае простое переключение DefaultConnection Идентификация использует ваше соединение. Entities1 не поможет, так как это не код. Однако вы можете сохранить DefaultConnection и изменить его, указав на свой дБ, и сначала используйте его. Если вы это сделаете, у вас будет две строки подключения (Entities1 и DefaultConnection), которые указывают на одну и ту же базу данных и сначала - базу данных и код, соответственно.

Для первого подхода с идентификатором, вы можете взглянуть на this.

+0

Да, добавив отработанное соединение по умолчанию. Огромное спасибо. – Techonthenet

Смежные вопросы