EF核心:操作方法:具有特定规则的数据库生成的字符串?

时间:2019-06-04 12:19:11

标签: entity-framework-core

流利的api是否可以创建具有特定规则的数据库生成的字符串?

比如说:字符串应以“ a”开头,然后是一个数字,该数字以1递增,最小起始值为10000。

例如a10001,a10002,...

1 个答案:

答案 0 :(得分:1)

您可以结合使用HasSequenceHasDefaultValueSql

示例可在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#')");
    }
}