【发布时间】:2017-10-31 15:34:28
【问题描述】:
我的客户要求数据库中的一个字段(“代码”)应该是从 100000 开始的只读增量值。有趣的是实体已经有一个主键。
我不知道如何使用实体框架轻松实现这一点。我可以尝试什么?
【问题讨论】:
标签: c# .net entity-framework entity-framework-core
我的客户要求数据库中的一个字段(“代码”)应该是从 100000 开始的只读增量值。有趣的是实体已经有一个主键。
我不知道如何使用实体框架轻松实现这一点。我可以尝试什么?
【问题讨论】:
标签: c# .net entity-framework entity-framework-core
你看过DatabaseGenerated Annotation 吗?
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Code { get; set; )
这会强制数据库生成值,并且通过使用 Identity,它只在插入时生成值(而不是在更新时)
据我了解,使用此方法需要您在数据库实例和EF would not generate it for you 中设置值创建。
很抱歉,如果这不能 100% 回答您的问题,但希望它能让您走上正轨!
【讨论】:
每个表只能创建一个标识列。标识列不能超过一个。
一种解决方案是使用 SQL Server 2012 中引入的 SQL Server 序列。
CREATE SEQUENCE Code_Seq START WITH 100000;
SELECT NEXT VALUE FOR Code_Seq;
【讨论】: