【问题标题】:DataAnnotation for creating Custom auto increment (or auto decrement) identity用于创建自定义自动递增(或自动递减)标识的 DataAnnotation
【发布时间】:2017-07-11 09:44:07
【问题描述】:

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

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

我搜索了一下,只能找到以下用于设置身份的DataAnnotation:

[DatabaseGenerated(DatabaseGeneratedOption.Identity)]

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

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

【问题讨论】:

  • 为什么不使用自定义数据注释验证器并在那里编写您最喜欢的逻辑?
  • @S.Akbari 我研究了 Annotation Validators 但这只能让我创建一个自定义验证,我怎么能告诉它自动减少 Id 而不是增加它?

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


【解决方案1】:

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

来实现此输出

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

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

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

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

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

谢谢

卡提克

【讨论】:

    猜你喜欢
    • 2023-03-30
    • 2016-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多