3

我無法首先爲我的項目更改實體框架代碼使用的連接字符串。我創建了一個MVC3項目,然後添加了兩個項目,DomainClasses和DataAccess。無法使用Entity Framework 4.1代碼優先更改連接字符串

的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; } 
} 

的數據訪問的項目有一個名爲類一個PLNQDB.cs類文件:

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

我有在MVC項目中引用這些項目中的每一個,並且所有東西都可以正常運行,甚至可以創建我可以保存並檢索數據的數據庫文件。

當運行這個項目我可以在自動窗口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文件。

我錯過了什麼?

回答

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; } 
} 
相關問題