C# 在EF迁移期间,如何基于其他列的数据填充新列?
我有一个使用实体框架与我的C#项目连接的数据库。我有一个类型为C# 在EF迁移期间,如何基于其他列的数据填充新列?,c#,entity-framework-core,C#,Entity Framework Core,我有一个使用实体框架与我的C#项目连接的数据库。我有一个类型为int的字段“DealActive”,其中填充了1和0。我想将此字段更改为bool类型。EF中是否有方法仅将字段类型从int更改为bool,并将每个1更改为true和0更改为false?或者我必须添加一个类型为bool的新字段,并用true和false值填充它吗?是否有任何方法至少可以在迁移过程中做到这一点,或者我必须将其创建为空并用另一个函数填充数据 下面是用于添加新bool列的迁移代码 namespace MYPROJECT.Mi
int
的字段“DealActive”,其中填充了1和0。我想将此字段更改为bool
类型。EF中是否有方法仅将字段类型从int
更改为bool
,并将每个1
更改为true
和0
更改为false
?或者我必须添加一个类型为bool
的新字段,并用true
和false
值填充它吗?是否有任何方法至少可以在迁移过程中做到这一点,或者我必须将其创建为空并用另一个函数填充数据
下面是用于添加新bool
列的迁移代码
namespace MYPROJECT.Migrations
{
using System;
using System.Data.Entity.Migrations;
public partial class MigrationName: DbMigration
{
public override void Up()
{
AddColumn("dbo.Deals", "Active", c => c.Boolean(nullable: false));
}
public override void Down()
{
DropColumn("dbo.Deals", "Active");
}
}
}
生成的迁移不是禁止的。您可以在
Up()
和Down()方法中插入自定义SQL代码。所以,如果EF不能满足您的需要,您可以编写自己的SQL并将其作为迁移的一部分。@TanveerBadar SQL中可以使用哪种方式?更改列的类型,或仅将数据从int列移动到新的bool列?您需要查找目标数据库的确切语法,但IIRC在基类DbMigration
中提供了一种方法,可用于指定所需的任何自定义SQL。附言:看来EF core的工作方式与EF 6.x略有不同。生成的迁移并非禁止。您可以在Up()
和Down()方法中插入自定义SQL代码。所以,如果EF不能满足您的需要,您可以编写自己的SQL并将其作为迁移的一部分。@TanveerBadar SQL中可以使用哪种方式?更改列的类型,或仅将数据从int列移动到新的bool列?您需要查找目标数据库的确切语法,但IIRC在基类DbMigration
中提供了一种方法,可用于指定所需的任何自定义SQL。附言:看来EF core做的事情与EF 6.x略有不同。