c# - 如何指定一个位置来为 Entity Framework Core 应用程序创建数据库文件?

标签 c# sql-server entity-framework entity-framework-core

我有一个应用程序使用 Entity Framework Core 通过应用迁移来创建 SQL Server 数据库及其表。我需要能够指定将创建数据库文件的目录位置。

我希望能够做的是:

  1. 在应用迁移之前,让我的应用程序在指定位置创建数据库及其文件

  2. 在应用迁移之前,让我的应用程序告诉 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/

相关文章:

c# - 在 Roslyn 中获取完全限定的元数据名称

asp.net - 发布管理 - 发布给用户子集 - 它对于面向公众的网站将如何工作

sql - select、where 和 group by 子句中的多个 CASE 表达式

sql-server - Sql Server 2012 中的递归衰减平均值

visual-studio-2010 - 查看在Visual Studio中为 Entity Framework “保存更改”命令生成的SQL?

c# - Ninject 特定于构造函数的代码顺序

C# Entity Framework : correct use of DBContext class inside your repository class

c# mvc 从 AJAX 调用返回 JSON 或文件

.net - 伪造 Entity Framework 4.1 的 DbContext 进行测试

c# - 使用 Entity Framework Core 在具有多对多关系的数据透视表中插入新记录