EF使用种子值自动增加非主列

时间:2014-02-01 09:32:49

标签: entity-framework

我有一个Order表,它有一个INT类型的OrderNumber列。订单表还有一个Id列,它是主键。我需要使OrderNumber列自动增加Seed值的值。有什么帮助吗?

由于 安键

1 个答案:

答案 0 :(得分:1)

您可以为任何列分配自动增量,但我不会这样做,因为OrderNumber绝对是您的Order实体的标识。您应该将它用作主键:

[Key] // make it primary key and remove Id property
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int OrderNumber { get; set; }

使用流畅的api添加自动增量如下:

modelBuilder.Entity<Order>()
   .Property(o => o.OrderNumber)
   .HasDatabaseGenerationOption(DatabaseGenerationOption.Identity);

如果要为OrderNumber创建种子,则应使用自定义数据库初始化程序并执行DBCC CHECKIDENT查询

DBCC CHECKIDENT ('Orders', RESEED, YourSeedValue)