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

标签 c# asp.net-mvc asp.net-core data-annotations

我想做的是创建一个自动递减的主键:

Id BIGINT PRIMARY KEY IDENTITY(-1,-1)

我搜索了一下,只找到了如下设置Identity的DataAnnotation:

[DatabaseGenerated(DatabaseGeneratedOption.Identity)]

但这并不能满足我设置起始值和增量值的需要。如果我想增加 1,并从 1 开始,实际上我经常使用的以下方法对我有用:

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

最佳答案

您好,您可以使用数据库初始化或迁移

实现此输出

在 Code First 中没有直接的方法来实现它。因此,要使用这些选项中的任何一个,您需要

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

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

来源:https://stackoverflow.com/a/23964887/3397630

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

谢谢

卡尔提克

关于c# - 用于创建自定义自动递增(或自动递减)标识的 DataAnnotation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45018821/

相关文章:

asp.net-mvc - MVC 编辑器/显示模板的官方 "How to"?

asp.net - ASP.NET 应用程序中什么消耗了超过 65% 的时间?

asp.net-core - ASP.NET Core url 仅重写域

c# - ASP.NET Core 1.0 (vNext) 中的引用库

angular - 如何在 Azure 上使用 Net Core API 单独部署 Angular 7

c# - 在 linq 结果中包含 count = 0

c# - Crystal Reports 可以缩放以适合页面吗

c# - 用完整的字符串分隔符拆分字符串

c# - 如何根据某些参数加载不同的 RESX 文件

c# - 放置多个显示错误 :There is already an open DataReader associated with this Command which must be closed first 的 sql 命令时