在管理工作室中可以访问mdf位置,并在分发应用程序时轻松创建

时间:2014-12-09 00:12:49

标签: entity-framework code-first ssms

我正在使用Entity Framework Code First来创建我的数据库。

这是当前的连接字符串

"Integrated Security=SSPI;MultipleActiveResultSets=True;Pooling=false;Data Source=(localdb)\\v11.0;Initial Catalog=Inventory"

但是,当我尝试将其附加到SQL Server Management Studio中时,此数据库不可见。

这是因为运行SQL Server服务的帐户需要有权访问我的用户文件夹才能看到它。

我尝试过授予此帐户访问权限,但由于我的用户文件夹中其他内容的权限而导致出现问题。

因此我认为我应该为要创建的数据库指定文件夹名称,但我不确定如何执行此操作,以及此方法可能带来的其他问题。

[更新] 我现在正在调查在app.config中设置AttachDbFilename

this link is helpful但是我不清楚如何设置| DataDirectory |对于winforms应用程序。

[更新]

以下连接字符串有效

 <add name="ConnectionString" connectionString="Integrated Security=SSPI;MultipleActiveResultSets=True;Pooling=false;Data Source=(localdb)\v11.0;AttachDbFilename=c:\databases\MyDatabase.mdf;"/>

了解如何将路径配置为与exe文件位置相同将会很有帮助。

2 个答案:

答案 0 :(得分:0)

您可以先使用sql server management studio(ssms)连接到您的localdb实例(服务器名称:(localdb)\ v11.0,Windows身份验证)

备份localdb数据库(右键单击db - &gt; task - &gt; backup)

然后与其他系统共享db备份文件。

答案 1 :(得分:0)

我将以下内容放在Main()

AppDomain.CurrentDomain.SetData("DataDirectory", AppDomain.CurrentDomain.BaseDirectory);

以及app.config中的以下内容

 <add name="ConnectionString" connectionString="Integrated Security=SSPI;MultipleActiveResultSets=True;Pooling=false;Data Source=(localdb)\v11.0;AttachDbFilename=|DataDirectory|\MyDatabase.mdf;"/>