2017-04-18 55 views
1

我使用实体框架的代码优先和的LocalDB默认文件夹中创建,与下面的连接字符串:的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。

+0

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

回答

0

你可以在这里设置路径(在注册表):

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

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

+1

是的,我仍然有问题,该注册表项设置为'C:\ Users \ Me \ AppData \ Local \ Microsoft \ Microsoft SQL Server本地数据库\ Instances \ MSSQLLocalDB'。 –

+0

电脑重启后? – ErikEJ

+1

是的,我试图重新启动,也尝试通过'sqllocaldb'' stop'删除实例,然后'删除'并删除它的文件,尝试通过'sqllocaldb创建LocalDB'的新实例尝试重新启动。 –

相关问题