2017-01-24 77 views
0

我正在一個web api上工作,我需要在App_Data文件夾中有一個本地數據庫,我使用的是實體框架代碼,但它不會在App_Data中創建數據庫實體框架不會在App_Data中創建數據庫

這裏是我的連接字符串:

<connectionStrings> 
    <add name="TestDBContext" 
     connectionString="Data Source=(LocalDb)\MSSQLLocalDB;Initial Catalog=TestDB;Integrated Security=True;MultipleActiveResultSets=True;AttachDBFilename=|DataDirectory|TestDB.mdf;User Instance=True" 
     providerName="System.Data.SqlClient" /> 
    </connectionStrings> 

我使用的顯示所有文件在項目菜單和唧唧歪歪

但數據庫正在

創建

我該如何解決這個問題?

+0

在連接字符串內部添加'AttachDbFileName ='部分。 [參考](https://msdn.microsoft.com/en-us/library/jj653752(v = vs.110).aspx#localdb) –

回答

0

通過安裝Sql LocalDB解決了問題

1

是的,那是默認值。兩種方法來解決:

1)添加連接字符串對上下文的構造函數:

public ApplicationDbContext() 
     : base("TestDBContext") { } 

2)默認的連接工廠添加到您的配置:

<entityFramework> 
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework"> 
    <parameters> 
     <parameter value="Data Source=(LocalDb)\MSSQLLocalDB;Initial Catalog=TestDB;Integrated Security=True;MultipleActiveResultSets=True;AttachDBFilename=|DataDirectory|TestDB.mdf;User Instance=True" /> 
    </parameters> 
    </defaultConnectionFactory> 
</entityFramework> 

https://msdn.microsoft.com/en-us/data/jj556606

+0

hi dude!我使用你的代碼,但它不工作,實際上現在我得到一個錯誤,而我嘗試插入新的數據,錯誤文本是:系統找不到指定的文件 – Hooman

+0

可能發生在數據庫創建。嘗試刪除僅用於SQL Express的User Instance = True。 –

+0

還向AttachDBFilename = | DataDirectory | \ TestDB.mdf添加反斜槓 –

0

通常,您需要將應用配置中的設置更改爲'AttachDbFileName',否則它默認爲SQL Server Express實例。通常你可以在模式正好被設置爲連接並解決這個問題:

<add name="ConnectionStringName" 
    providerName="System.Data.SqlClient" 
    connectionString="Data Source=(LocalDB)\v11.0;AttachDbFileName=|DataDirectory|\DatabaseFileName.mdf;InitialCatalog=DatabaseName;Integrated Security=True;MultipleActiveResultSets=True" /> 

這裏是連接的MS頁對你太: https://msdn.microsoft.com/en-us/library/jj653752(v=vs.110).aspx#sqlce \

雖然我會認真建議,如果這是一個不小的緊湊應用程序將有小的增長,你不會做一個附加的數據庫。這對於部署大規模應用程序只是一個糟糕的主意,而且一般情況下不好的做法是,除非您知道您的數據庫大多數情況下總是很小。只是我的兩分錢。

相關問題