LocalDB - 不再在默认文件夹上创建新的代码优先数据库

时间:2017-04-18 16:24:34

标签: c# visual-studio entity-framework ef-code-first localdb

我正在使用Entity Framework的Code-First和LocalDB,其中包含以下连接字符串:

Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=MyApp;Integrated Security=True;
Connect Timeout=30;Encrypt=False;TrustServerCertificate=True;
ApplicationIntent=ReadWrite;MultiSubnetFailover=False;MultipleActiveResultSets=true;

在此路径中正确创建了实例及其数据库文件:

C:\Users\Me\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances\MSSQLLocalDB

但是我正在搞乱,我重命名然后通过Visual Studio的“SQL Server对象资源管理器”及其文件删除了MSSQLLocalDB。现在我创建了它,所有通过EF Code First生成的数据库都在我的%USERPROFILE%文件夹中创建,即C:\Users\Me

在“SQL Server对象资源管理器”中,如果我右键单击并“添加新数据库”,它将显示正确的路径。右键单击实例,然后属性显示“默认数据库位置”是正确的。

注册表配置正确:

[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Microsoft SQL Server\UserInstances\{9F44D466-A9BA-40E3-9DEA-21E0638C80A2}]
...
"DataDirectory"="C:\\Users\\Me\\AppData\\Local\\Microsoft\\Microsoft SQL Server Local DB\\Instances\\MSSQLLocalDB"

我试图通过SqlLocalDB Utility创建一个具有不同名称的新实例,但它的行为方式相同。还尝试重新启动,在删除实例之前和之后,没有成功。

我也尝试过重新安装。我卸载了Visual Studio(Web和桌面),MS Data Tools,MSSQL Compact和MS LocalDB,然后重新安装了VS,但没有成功。

我不想更改我的连接字符串并将其指向正确的路径,因为项目由其他开发人员共享和维护。

如何恢复此行为?我正在使用Visual Studio 2015 Express。

1 个答案:

答案 0 :(得分:0)

您可以在此处设置路径(在注册表中):

[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Microsoft SQL Server\UserInstances]

路径不是连接字符串的一部分,所以你真的有问题吗?