2013-10-11 85 views
3

我似乎遇到了創建MVC4應用程序的問題,其中我採用了代碼優先的方法來創建我的模型,但似乎沒有在web.config文件中創建連接字符串。無連接字符串的代碼優先更改數據源

構建的數據庫似乎建立在(localhost)\ SQLEXPRESS實例上,但我想將其更改爲外部數據源。沒有連接字符串更新我不知道如何做到這一點。

請有人指出我在正確的方向嗎?

編輯:我發現下面的圖,它突出了什麼答案都表示不錯

EF DB Initialization Flowchart http://www.entityframeworktutorial.net/images/codefirst/database-init-fg1.PNG

回答

2

你必須自己添加連接字符串

<add name="SomeDb" connectionString="Data Source=SERVENAME;Initial Catalog=DBNAME;User Id=loginid;Password=password" providerName="System.Data.SqlClient" /> 

此字符串的名稱應與您的上下文類的名稱匹配。

public class SomeDb: DbContext 
{ 
    public SomeDb() 
     : base("name=SomeDb") 
    { 
    } 
} 

這應該這樣做。

1

你必須創建具有相同名稱的連接字符串爲您DbContext類:

<connectionStrings> 
    <add name="NameOfDbContext" connectionString="Data Source=ServerName\InstanceName;Initial Catalog=DatabaseName;Integrated Security=True" providerName="System.Data.SqlClient" /> 
</connectionStrings> 

您也可以使用DbContext類的過載自己指定連接字符串:

public class MyDbContext() : base("ProductionDbContext") 
{ 
} 

現在您可以使用ProductionDbContext作爲連接字符串。

有關更多信息,請參閱this article on MSDN

1

如果您使用ADO.NET Entity Framework(.edmx),它將使用連接字符串更新您的web.config文件。但在代碼首先你需要寫在web.config中像您的連接字符串,

假設你的DbContext的樣子,

public class SampleDbContext:DbContext 
{ 
public SampleDbContext():base("SampleDbContext") 
{ 

} 
... 
... 
} 

你應該SampleDbContext名稱,如建立在web.config中的連接字符串後,

希望這有助於

相關問題