EF Core: Как: Сгенерированная в базе данных строка с конкретными правилами? - PullRequest
0 голосов
/ 04 июня 2019

Возможно ли с помощью свободно распространяемого API создать строку, сгенерированную в базе данных, с конкретными правилами?

Как, скажем, строка должна начинаться с «а», а затем числа, которое увеличивается на 1, а минимальное начальное значение составляет 10000.

например. a10001, a10002, ...

1 Ответ

1 голос
/ 04 июня 2019

Вы можете использовать комбинацию HasSequence и HasDefaultValueSql

Пример работает в SQL Server, но не уверен насчет других провайдеров.

public class Foo
{
    public int FooId { get; set; }
    public string GeneratedString { get; set; }
}

public class FooContext : DbContext
{
    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder
            .HasSequence<int>("GeneratedStringSequence")
            .StartsAt(10000)
            .IncrementsBy(1);

        modelBuilder
            .Entity<Foo>()
            .Property(f => f.GeneratedString)
            .HasDefaultValueSql("FORMAT((NEXT VALUE FOR GeneratedStringSequence), 'a#')");
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...