首先使用EF代码更改localdb的路径

时间:2018-11-12 13:52:01

标签: ef-code-first clickonce localdb

我正在将应用程序的设置更改为clickonce应用程序。

我使用SQL Server Express和EntityFramework并采用代码优先方法。

数据库的MDF存储在%USERPROFILE%/ database.mdf中。现在,我必须将位置更改为%USERPROFILE%/ AppData / Local / Apps /…

我尝试使用此连接字符串

connectionString="data source=(LocalDb)\MSSQLLocalDB;initial catalog=MIADbContext;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\database.mdf" 

但是用这个连接字符串我得到一个错误:

 System.ArgumentException: Expansion of |DataDirectory| failed while processing the connection string. Ensure that |DataDirectory| is set to a valid fully-qualified path.

我不知道为什么这行不通。有什么解决办法吗?

1 个答案:

答案 0 :(得分:0)

您可以通过3个步骤更改localDB的路径

  1. 分离数据库
  2. 将localdb数据库复制并粘贴到其他位置
  3. 用新位置附加数据库

查询以分离数据库

EXEC sp_detach_db 'aspnet-IdentityApplication-E2BBF1E6-123-4567-8910-07BC0413419B', 'true';   

查询附加数据库

CREATE DATABASE [aspnet-IdentityApplication-E2BBF1E6-123-4567-8910-07BC0413419B]  
    ON (FILENAME = 'D:\Test\aspnet-IdentityApplication-E2BBF1E6-123-4567-8910-07BC0413419B.mdf'),   
    (FILENAME = 'D:\Test\aspnet-IdentityApplication-E2BBF1E6-123-4567-8910-07BC0413419B_log.ldf')   
    FOR ATTACH;