WPF中的EF6 Code First在应用程序文件夹中创建本地DB

时间:2018-03-18 23:55:27

标签: wpf entity-framework

我想在WPF应用程序中使用EF6 Code First方法在我的应用程序的文件夹中创建一个本地数据库。我已尝试以不同的方式在App.config中配置连接字符串以实现我的目标,但没有一个成功。有人能帮助我吗?

1 个答案:

答案 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));

这应该可以解决问题。