gpt4 book ai didi

wpf - 使用迁移到 LocalDB 的 CodeFirst,我可以指定*在哪里*创建数据库吗?

转载 作者:行者123 更新时间:2023-12-04 19:46:22 24 4
gpt4 key购买 nike

我一直致力于 CodeFirst POCO WPF 项目,我希望数据库是 LocalDB。我已经使用迁移(包管理器控制台窗口中的添加迁移和更新数据库命令)来生成我的数据库和表。我已将我的配置文件设置为具有以下连接字符串:

    <add name="MyContext" connectionString="Data Source=(LocalDB)\v11.0;Database=MyDatabase;Integrated Security=True;" providerName="System.Data.SqlClient" />  

使用该连接字符串,在我在控制台中调用 update-database 后,它会正确创建数据库和我的所有表,但是它将 MDF 文件放在当前登录用户的根目录中.这就是我试图改变的行为。我想要在应用程序文件夹中创建的数据库。我该怎么做?

我已尝试将“AttachDBFileName=|DataDirectory|\MyDatabase.mdf”添加到连接字符串,但在运行更新数据库后出现此错误:

A file activation error occurred. The physical file name '\MyDatabase.mdf' may be incorrect. Diagnose and correct additional errors, and retry the operation.
CREATE DATABASE failed. Some file names listed could not be created. Check related errors.

如果我尝试“初始文件名”而不是 AttachDBFileName,我会得到同样的错误。这似乎只有在文件已经存在的情况下才有效?但我希望在用户首次启动应用程序时自动生成该文件,并且让该文件与应用程序存在于同一文件夹中。我该怎么做?

-shnar

最佳答案

这是因为使用 DataDirectory 的数据文件的默认位置在桌面应用程序的 Program Files 中。要修改 Program Files 子目录,需要程序以管理员身份运行或目录被赋予适当的写访问权限。请参阅 AppDomain.SetData 以将 DataDirectory 宏设置为实际的 %AppData% 目录。在 Program Files 中创建数据文件违反了 Microsoft Best Practices,通常没有必要这样做。

关于wpf - 使用迁移到 LocalDB 的 CodeFirst,我可以指定*在哪里*创建数据库吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22538214/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com