EF迁移中的原始SQL

时间:2018-11-06 11:57:36

标签: c# .net entity-framework

我将向数据库中添加“国家/地区”表,这是“学生”字段的必填字段-但是,“学生”表具有记录,因此我想最初将“国家/地区”设置为可为空,在迁移中运行原始SQL来设置现有学生的CountryId,然后将外键更改为非空值。这可能吗?谢谢

public class Country {
    public int Id {get; set;}
    public string Name {get; set;}
}

public class Student {
    public int? CountryId {get; set;}
    public virtual Country Country {get; set;}
}

1 个答案:

答案 0 :(得分:0)

我设法弄清楚了,Migration类是从DbMigration继承的,这可以访问可用于编写原始sql的方法'Sql'。 -

 public override void Up()
    {
        Sql("INSERT INTO Table VALUES ('val')");
        Sql("UPDATE Table SET COL = '1' WHERE COL IS NULL ");
    }