2016-07-28 171 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相同。

希望它有用!

相关问题