Невозможно сначала изменить строку подключения с кодом Entity Framework 4.1

У меня возникли проблемы с изменением строки подключения, используемой кодом структуры сущности сначала для моего проекта. Я создал проект MVC3, а затем добавил два проекта: DomainClasses и DataAccess.

В проекте DomainClasses есть один файл класса с именем Classes.cs с одним классом:

public class User
{
    public int ID { get; set; }
    public string Username { get; set; }
    public string EmailAddress { get; set; }
    public string Password { get; set; }
    public int StatusID { get; set; }
    public DateTime DateCreated { get; set; }
}

В проекте DataAccess есть один файл класса с именем PLNQDB.cs с одним классом:

public class PLNQDB : DbContext
{
    public DbSet<User> Users { get; set; }
}

У меня есть ссылка на каждый из этих проектов в моем проекте MVC, и все работает нормально, работает и даже создает файл базы данных, в который я могу сохранять и извлекать данные.

При запуске проекта я вижу в окне Autos строку подключения, используемую в this.db.base.Database.Connection.base.ConnectionString =

"Data Source=.\\SQLEXPRESS;Initial Catalog=PLNQ.DataAccess.PLNQDB;Integrated Security=True;MultipleActiveResultSets=True"

У меня вопрос, как переопределить эту автоматически созданную строку подключения для использования моего удаленного сервера. Я добавил строку подключения в файл web.config проекта MVC.

  <connectionStrings>
    <add name="ApplicationServices"
         connectionString="Data Source=255.255.255.255;Initial Catalog=PLNQ;User ID=blah;Password=blah"
         providerName="System.Data.SqlClient" />
  </connectionStrings>

но каждый раз, когда я запускаю проект, он по-прежнему использует автоматически созданную строку подключения. Я также пробовал добавлять файлы App.config с одной и той же строкой подключения в проекты DataAccess и DomainClasses.

Что мне не хватает?


person Chad Myers    schedule 16.07.2011    source источник


Ответы (1)


Есть несколько вариантов

1 Вам необходимо указать строку подключения, которая соответствует имени вашего класса DbContext.

eg

  <connectionStrings>
    <add name="PLNQDB"
         connectionString="Data Source=255.255.255.255;Initial Catalog=PLNQ;User ID=blah;Password=blah"
         providerName="System.Data.SqlClient" />
  </connectionStrings>

2 В конструкторе DbContext вызовите конструктор базового класса с именем строки подключения

public class PLNQDB : DbContext
{
    public PLNQDB():base("ApplicationServices"){}

    public DbSet<User> Users { get; set; }
}
person Eranga    schedule 16.07.2011