我想在WPF应用程序中使用EF6 Code First方法在我的应用程序的文件夹中创建一个本地数据库。我已尝试以不同的方式在App.config中配置连接字符串以实现我的目标,但没有一个成功。有人能帮助我吗?
答案 0 :(得分:1)
如果我理解正确,您就是成功创建了一个LocalDB数据库。但是您希望数据库位于应用程序的可执行文件夹中而不是默认位置。这是对的吗?
你可能有一个类似于这样的连接字符串设置:
<add name="MyDatabase" connectionString="Data Source=(LocalDb)\MSSQLLocalDB;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\MyDatabase.mdf" providerName="System.Data.SqlClient" />
重要的部分是 AttachDBFilename 属性。确保它以“| DataDirectory |”开头。
现在,在您的应用中的某个位置(我在OnStartup中执行此操作),您将需要更改DataDirectory域属性的值。要将其更改为执行程序集所在的文件夹,请尝试以下操作:
AppDomain.CurrentDomain.SetData("DataDirectory", Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location));
这应该可以解决问题。