无法首先使用Entity Framework 4.1代码更改connectionstring

时间:2011-07-16 03:35:44

标签: entity-framework asp.net-mvc-3 connection-string ef-code-first

我无法首先为我的项目更改实体框架代码使用的连接字符串。我创建了一个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"

我的问题是如何覆盖此自动生成的连接字符串以使用我的远程服务器。我已经将连接字符串添加到MVC项目的web.config文件中。

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

但每次运行项目时,它仍然使用自动生成的连接字符串。我还尝试在DataAccess和DomainClasses项目中添加具有相同连接字符串的App.config文件。

我错过了什么?

1 个答案:

答案 0 :(得分:15)

有几个选项

1您需要命名与您的DbContext班级名称匹配的连接字符串。

例如

  <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; }
}
相关问题