2014-02-16 2 views
0

Я пытаюсь создать таблицы членства в моей существующей базе данных SQL Server 2008 и использовать это вместо базы данных по умолчанию, созданной для меня в Visual Studio, но получая ошибку при регистрации аккаунт. Есть ли способ создать таблицы вручную, например, с помощью aspnet_regsql?MVC5 ApplicationUser не является частью модели для текущего контекста

Ошибка: Тип ApplicationUser объект не является частью модели для текущего контекста

Я выяснял ответ. Приложению ApplicationUser не нравится использовать строку соединения, созданную первым подходом к базе данных. Вам нужно использовать стандартную строку соединения.

+0

Является ли эта таблица той же схемой, что и сгенерированная? Мы просто говорим об изменении строки соединения здесь? Сначала сохранить код или перейти к DbFirst? – James

+0

У меня уже есть база данных с существующими таблицами на моем сервере sql 2008. Я уже создал соединение для него. Все в порядке, за исключением случаев, когда я пытаюсь зарегистрировать учетную запись, это ошибки и не будет создавать таблицы в моей базе данных на сервере sql. – user1929393

+0

В существующей таблице уже есть таблицы. Он должен просто создавать дополнительные таблицы членства, но получать ошибку. – user1929393

ответ

4

In Your IdentityModel.cs

public class ApplicationDbContext : IdentityDbContext<ApplicationUser> 
{ 
    public ApplicationDbContext() 
     : base("DefaultConnection") 
    { 
    } 
} 

В WebConfig, использовать различные 2 строки подключения, один для ApplicationDbContext и они другие для вашей базы данных первого EDMX-установки:

<add name="DefaultConnection" providerName="System.Data.SqlClient"     connectionString="data source=(local); Initial Catalog=StoreDB; Integrated Security=SSPI;" /> 


<add name="StoreEntities" connectionString="metadata=res://*/Models.StoreDB.csdl| res://*/Models.StoreDB.ssdl|res://*/Models.StoreDB.msl;provider=System.Data.SqlClient;provider connection  string=&quot;data source=(local);initial catalog=STOREDB;integrated  security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;"  providerName="System.Data.EntityClient" /> 
+0

спасибо, сэр !!!!! долгое время пытались понять, почему база данных в первый раз с использованием .edmx-файла работает некорректно. –

0

Вот несколько деталей, которые будут вам полезны:

У меня была такая же проблема. Я делаю первую разработку базы данных с файлом EDMX. Если вы используете строку соединения, сгенерированную при добавлении файла EDMX в: base («EDMXConnString»), у вас, скорее всего, будет эта проблема.

Я исправил это, создав стандартную строку соединения, указывающую на базу данных, где находятся таблицы ASP.NET Identity.

<add name="MyConnString" connectionString="Data Source=server; Initial Catalog=db_name; User ID=user_id; Password=password; Connect Timeout=60;" providerName="System.Data.SqlClient" /> 

И затем используется эта строка соединения в: базе, и она сработала!

public class ApplicationDbContext : IdentityDbContext<ApplicationUser> 
{ 
    public ApplicationDbContext() 
     : base("MyConnString") 
    { 
    } 
} 
Смежные вопросы