【问题标题】:EntityFramework Autonumeric value (not primary key)EntityFramework Autonumeric 值(不是主键)
【发布时间】:2017-10-31 15:34:28
【问题描述】:

我的客户要求数据库中的一个字段(“代码”)应该是从 100000 开始的只读增量值。有趣的是实体已经有一个主键。

我不知道如何使用实体框架轻松实现这一点。我可以尝试什么?

【问题讨论】:

标签: c# .net entity-framework entity-framework-core


【解决方案1】:

你看过DatabaseGenerated Annotation 吗?

[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Code { get; set; )

这会强制数据库生成值,并且通过使用 Identity,它只在插入时生成值(而不是在更新时)

据我了解,使用此方法需要您在数据库实例和EF would not generate it for you 中设置值创建。

很抱歉,如果这不能 100% 回答您的问题,但希望它能让您走上正轨!

【讨论】:

    【解决方案2】:

    每个表只能创建一个标识列。标识列不能超过一个。

    一种解决方案是使用 SQL Server 2012 中引入的 SQL Server 序列。

    CREATE SEQUENCE Code_Seq START WITH 100000;
    
    SELECT NEXT VALUE FOR Code_Seq;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-24
      • 1970-01-01
      • 1970-01-01
      • 2018-12-25
      • 2012-06-16
      相关资源
      最近更新 更多