. NET: Как определить уникальное ограничение с помощью Entity Framework Core 3.1 Migrations 'CreateTableBuilder? - PullRequest
0 голосов
/ 26 апреля 2020

Я создаю SQL серверную таблицу, используя Entity Framework Core 3.1 Миграции и использую классы MigrationBuilder и CreateTableBuilder, например:

protected override void Up(MigrationBuilder migrationBuilder)
{
    migrationBuilder.CreateTable(
        name: "Example",
        columns: table => new
        {
            Id = table.Column<Guid>(nullable: false),
            Foo = table.Column<string>(maxLength: 256, nullable: false),
            Bar = table.Column<string>(maxLength: 256, nullable: false)
        },
        constraints: table =>
        {
            table.PrimaryKey("PK_Example", x => x.Id);
        });
}

Мне удалось определить ограничение UNIQUE для одного столбца следующим образом:

table.UniqueConstraint(
    name: "Unique_Foo", 
    columns: x => x.Foo);

Но мне нужно определить ограничение UNIQUE для двух столбцов (например: Foo и Bar) и я не смог express это в аргументе columns. (Тип аргумента: System.Linq.Expressions.Expression<Func<TColumns,object>>)

Как определить уникальное ограничение для двух или более столбцов, используя класс CreateTableBuilder?

1 Ответ

1 голос
/ 26 апреля 2020

Попробуйте это:

columns: x => new {x.Foo, x.Bar}
...