是否可以在EF7中使用流畅的API添加CHECK约束?

rtf*_*leg 8 entity-framework-core

是否可以在Entity Framework 7中使用流畅的API添加CHECK约束?

我需要做到这样的事情:

...
ADD CONSTRAINT CK_SomeTable_SomeColumn CHECK (SomeColumn >= X);
Run Code Online (Sandbox Code Playgroud)

如果解决方案是特定于提供者的,那就没问题 - 我只针对MsSqlServer(至少现在).

Luk*_*brt 17

从EF 7.0.0-rc1开始,使用流畅的API无法实现.

您可以在迁移中手动定义约束

migrationBuilder.Sql("ALTER TABLE SomeTable ADD CONSTRAINT CK_SomeTable_SomeColumn CHECK (SomeColumn >= X);");
Run Code Online (Sandbox Code Playgroud)


Rya*_*rks 16

从 EF Core 3.0 开始,您可以使用

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    modelBuilder.Entity<SomeTable>(entity =>
        entity.HasCheckConstraint("CK_SomeTable_SomeColumn", "[SomeColumn] >= X");
}
Run Code Online (Sandbox Code Playgroud)

  • 以防万一有人想知道您需要安装“Microsoft.EntityFrameworkCore.Relational”NuGet 包才能使用此扩展方法。 (5认同)