EntityFramework自动数字值(不是主键)

时间:2017-10-31 15:34:29

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

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

我不知道如何使用Entity Framework轻松实现这一点。有任何想法吗? 谢谢!

2 个答案:

答案 0 :(得分:1)

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

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

CREATE SEQUENCE Code_Seq START WITH 100000;

SELECT NEXT VALUE FOR Code_Seq;

答案 1 :(得分:0)

你看过DatabaseGenerated Annotation吗?

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

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

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

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