2016-07-28 70 views
0

我最近一直在使用實體框架,我的WPF應用程序完全正常工作,雖然我有一點問題。儘管它存儲和檢索數據,但我無法查看或找到由框架創建的數據庫。當我啓動SqlServer管理工作室時,沒有新的數據庫。我也搜索了這個路徑「C:\ Program Files \ Microsoft SQL Server \ MSSQL10_50.MSSQLSERVER \ MSSQL \ DATA」但我找不到它。另一個奇怪的是,我沒有在配置文件中放置任何連接字符串,但正如我所說的,它將數據存儲在某個匿名數據庫的某處。 你介意告訴我數據庫的確切位置嗎? 我正在使用Microsoft Sql Server 2008R2。由實體框架自動創建的數據庫的位置

<entityFramework> 
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework"> 
     <parameters> 
     <parameter value="v11.0" /> 
     </parameters> 
    </defaultConnectionFactory> 
    <providers> 
     <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" /> 
    </providers> 
    </entityFramework> 
+0

這可能是一個localdb。檢查你的%UserProfile%文件夾或\ App_Data。如果它創建了SQL Express數據庫,它將位於。\ SQLEXPRESS實例中。 https://blogs.msdn.microsoft.com/sqlexpress/2011/10/28/localdb-where-is-my-database/ –

+0

標準數據庫文件夾是連接字符串作爲執行程序集路徑中的數據庫名稱。我不認爲你可以完全沒有連接字符串。 – DevilSuichiro

+0

奇怪的是,我記得你可以沒有連接字符串。 EF已翻轉如何處理它(SQL Express與localdb)。 http://david.gardiner.net.au/2015/04/entity-framework-6-connection-string.html –

回答

0

在web.config中連接字符串工作。
例子:

的Web.config

<connectionStrings> 
    <add name="AnyName" providerName="System.Data.SqlClient" connectionString="Data Source=(localdb);Initial Catalog=DbName;Integrated Security=True;MultipleActiveResultSets=True" /> 
    </connectionStrings> 

在您的上下文

public Context() 
     : base("AnyName") 
    {} 

名稱(「AnyName」)必須是在上下文中和的ConnectionString相同。

希望它有用!