2013-05-22 4 views
5

У меня есть строка соединения:Почему инфраструктура Entity Framework игнорирует мою строку подключения?

<add name="Gini" providerName="System.Data.SqlClient" connectionString="user id=user;Password=pa55;Data Source=server;Database=gini" />

Я хочу EF, чтобы иметь возможность контролировать создание базы данных и обновления в результате миграции, так что я позволить ему иметь полный контроль над БД.

Мой контакт класс выглядит следующим образом:

public class GiniContext : DbContext 
{ 
    public DbSet<UserSession> UserSessions { get; set; } 

    protected override void OnModelCreating(DbModelBuilder modelBuilder) 
    { 
     modelBuilder.Configurations.Add(new UserSessionConfiguration()); 
    } 

    public GiniContext() : base("Gini") 
    { 
     Database.Create(); 
    } 
} 

Я ожидал бы это, чтобы создать базу данных с именем «Джини» на сервере под названием «сервер», используя имя пользователя и пароль, как указано выше, но это создает его экземпляр (LocalDB) \ v11.0.

Что я делаю неправильно?

+0

Пробовал назвать его «GiniContext»? – mxmissile

+0

Я думаю, что для правильной работы сам контекст и строка подключения должны иметь одно и то же имя, поэтому попробуйте переименовать строку подключения в вашем конфиге в «GiniContext» – DrCopyPaste

+0

Я попытался переименовать строку подключения в «GiniContext» и изменить имя в конструкторе. –

ответ

3

Если у вас есть два проекта, такие как библиотека классов для объектов и веб-приложение, ссылающиеся на него. Вам нужно будет добавить соединение из app.config в web.config в своем веб-приложении.

+0

Должно ли это быть как в библиотеке классов, так и в веб-приложении? Или это может быть просто в веб-приложении? –

+0

Я только что зарегистрировался в одном из моих проектов, и в конфигурации приложения его нет, но в веб-конфигурации есть его. В этой теме есть информация об этом. http://stackoverflow.com/questions/4290919/where-to-store-connection-string-for-class-library-in-desktop-application-can-i – arunlalam

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