我有一个应用程序使用 Entity Framework Core 通过应用迁移来创建 SQL Server 数据库及其表。我需要能够指定将创建数据库文件的目录位置。
我希望能够做的是:
在应用迁移之前,让我的应用程序在指定位置创建数据库及其文件
在应用迁移之前,让我的应用程序告诉 SQL Server 在何处创建数据库文件
我正在使用连接字符串创建我的 DbContext
:
Data Source=ServerName;AttachDbFilename=specifiedPath\databasename.mdf;Initial Catalog=databasename;Integrated Security=True
我试过在应用迁移之前让应用程序使用标准 SQL Create 查询创建数据库。这会导致迁移失败并出现以下异常:
Microsoft.Data.SqlClient.SqlException (0x80131904): Database 'databasename' already exists. Choose a different database name.
我假设这是因为 DbContext
或迁移正在尝试创建连接字符串中指定的数据库。
我能否以某种方式编辑迁移以删除创建数据库的步骤?还是 DbContext
?
最佳答案
以防万一有人想解决类似的问题:
我通过删除检查数据库是否已经存在的代码来解决这个问题。实际上根本不需要手动创建文件。
通过在连接字符串中指定文件名,使用
AttachDbFilename=specifiedPath\databasename.mdf
参数,SQL 服务器刚刚在那个位置创建了文件。
关于c# - 如何指定一个位置来为 Entity Framework Core 应用程序创建数据库文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62767511/