我有一个。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