C# 用于创建自定义自动递增(或自动递减)标识的DataAnnotation

C# 用于创建自定义自动递增(或自动递减)标识的DataAnnotation,c#,asp.net-mvc,asp.net-core,data-annotations,C#,Asp.net Mvc,Asp.net Core,Data Annotations,我要做的是创建一个具有自动递减功能的主键: Id BIGINT PRIMARY KEY IDENTITY(-1,-1) 我搜索了它,只能找到以下用于设置标识的DataAnnotation: [DatabaseGenerated(DatabaseGeneratedOption.Identity)] 但这并不能满足我设置起始值和增量值的需要。如果我想增加1,从1开始,实际上我一直使用的下列公式对我有效: [Key] public long Id { get; set; } 您好

我要做的是创建一个具有自动递减功能的主键:

Id BIGINT PRIMARY KEY IDENTITY(-1,-1)
我搜索了它,只能找到以下用于设置标识的DataAnnotation:

[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
但这并不能满足我设置起始值和增量值的需要。如果我想增加1,从1开始,实际上我一直使用的下列公式对我有效:

    [Key]
    public long Id { get; set; }

您好,您可以通过使用数据库初始化或迁移来实现此输出

没有直接的方法首先在代码中实现这一点。因此,要使用这些选项中的任何一个,您需要

自定义DB初始化:这是通过实现您自己的数据库初始值设定项类并从Seed方法执行所需的SQL命令来完成的(在链接文章中查找公共类MyInitializer的实现)

或自定义迁移:您可以在迁移的Up()或Down()方法中执行任何SQL命令

资料来源:

请看上面的url,询问者评论说,通过使用上述技术可以解决问题。所以希望它也能对你有用

谢谢


Karthik

为什么不使用自定义数据注释验证器并在那里编写您最喜欢的逻辑?@S.Akbari我查看了注释验证器,但这只允许我创建自定义验证,我如何告诉它自动减少Id而不是增加Id?