2014-09-02 21 views

回答

0

更改Connectionsstring:

<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;AttachDbFilename=|DataDirectory|\MyDatabase-Demo.mdf;Initial Catalog=MyDatabase-Demo;Integrated Security=True" providerName="System.Data.SqlClient" /> 
+0

這是行不通的。它仍然把數據庫放在我的Sql ServerDatabases文件夾中。 – pthalacker 2014-09-02 20:39:34

+0

實際上,當我的web.config文件中有連接字符串時,EF在內存中創建數據庫,但從不創建表。然後,當我嘗試訪問它時,提供程序會拋出無法打開數據庫的異常。 mdf永遠不會保存在任何地方 – pthalacker 2014-09-02 22:52:28

+0

我改變了我的答案。這是來自demoproject(Asp.Net MVC)的連接字符串。 - >運行 - >註冊用戶 - >文件(MyDatabase-Demo.mdf)創建在我的App_Data文件夾中 - >右鍵單擊App_Data-Folder - >添加現有項目 - >選擇我的.mdf ...我希望它將有所幫助 – 2014-09-03 05:49:57

0

實體框架基於通過的ConnectionString在app.config中的名稱與您的DbContext對象使用的數據庫。

您可以使用與您的DbContext相同的名稱來更改此連接字符串。

<connectionStrings> 
    <add providerName="System.Data.SqlClient" connectionString="Server=.\SQLExpress;AttachDbFilename=|DataDirectory|mydbfile.mdf;Database=dbname; Trusted_Connection=Yes;" name="CRMContext"/> 
</connectionStrings> 

這裏DbContext派生類將是CRMContext。你會發現類如下。

public class CRMContext:DbContext 
{ 

} 

如果你想讓你的DbContext使用不同的connectionstring,你可以在它的構造函數中傳遞它。

using(var db = new CRMContext("SomeAnotherConnectionString")) 
{ 

} 

這裏,EF自動搜索App.config中的ConnectionString的名稱爲 「SomeAnotherConnectionString」

相關問題