. net 6 -实体框架核心从SQL脚本迁移



我有一个。net Core应用程序与实体框架迁移。我在OnModelCreating()中播种数据库,如下所示:

modelBuilder.Entity<Employee>().HasData(
new Employee { Id = 1, Name = "Peter", idDepartment = 3 },
new Employee { Id = 2, Name = "Rose", idDepartment = 5 },
...
);

但是对于某些表,我想要运行SQL脚本。

如何在OnModelCreating()中运行这些脚本?SQL脚本保存在一些.sql文件中

您可以创建自定义的空迁移,并将脚本查询直接复制粘贴到该迁移中。使用新的c# 11原始字符串字面值这将是一个非常简单的功能(字面上的复制和粘贴)。

像这样:

public partial class PureSqlMigration : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
var sql =
$"""
update dbo.Folders set FullPath = 'Creating Digital Images - EDIT' where FolderId = 1
""";
migrationBuilder.Sql(sql);
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{

}
}

然后运行它。如果需要的话,不要忘记回滚操作。希望对你有帮助。

您可以尝试这样做(这意味着DbContext)。employees(或者您的表的名称)。或者在这里看得更好:https://www.learnentityframeworkcore.com/raw-sql

最新更新