EF Code First - 如果未手动设置值,则指定自动增量值

时间:2017-05-17 04:43:28

标签: c# asp.net entity-framework ef-code-first

首先使用EF 6.X代码开发Asp.Net应用程序。 考虑以下模型:

public class Product
{
   public int ProductId {get;set;}
   ...
}

现在我需要达到以下要求:

创建新记录时,

  1. 应该能够手动指定ProductId。
  2. 如果没有为ProductId设置值,则自动递增值 保存记录时应自动设置。
  3. 最佳解决方案是什么? EF中是否有内置支持?

    这会令人困惑: 假设当前的产品ID为100.用户通过手动设置产品ID 150来创建新记录。那么下一个值101或151是什么?

1 个答案:

答案 0 :(得分:1)

您可以使用HiLo生成器生成ID值。 HiLo生成器用于特别解决这种情况,特别是对于分布式数据库。这篇文章展示了如何使用EF6完成它。

http://joseoncode.com/2011/03/23/hilo-for-entityframework/

简而言之,您使用包含上次生成的id值的单独序列表,并且每次保存新项目时该值都会递增。