我有一个实体类
public class Employee
{
public long Id { get; set; }
public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我已将Id字段设置为具有自动编号生成的主键
modelBuilder.Entity<Employee>().HasKey(e => e.Id);
modelBuilder.Entity<Employee>().Property(e => e.Id).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);
Run Code Online (Sandbox Code Playgroud)
但我希望Identity从10000而不是从1开始播种,这是默认值.如何在EF中指定?
我已经看到很多关于如何将字段标记为标识列的帖子和答案.其中许多已过时,并且目标是旧版本的Entity Framework.
一些资源告诉我在字段上使用属性:
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int ID { get; set; }
Run Code Online (Sandbox Code Playgroud)
其他资源告诉我将此代码添加到OnModelCreating方法:
modelBuilder.Entity<User>().Property(u => u.ID).HasDatabaseGeneratedOption(System.ComponentModel.DataAnnotations.Schema.DatabaseGeneratedOption.Identity);
Run Code Online (Sandbox Code Playgroud)
我应该使用哪一个?第一,第二,两者,无所谓,或其他什么?
.net sql-server entity-framework entity-framework-6 .net-4.6