📅  最后修改于: 2023-12-03 14:53:36.341000             🧑  作者: Mango
在使用 Entity Framework 进行开发时,我们通常会在实体类中定义一个主键 ID,并指定其自增。但是,有时我们希望不使用自增,而是手动指定主键的值。这篇文章将介绍如何实现 Entity Framework 的 ID 不自动递增。
我们可以通过在实体类中定义 KeyAttribute 来指定主键,并在保存时手动设置主键的值。以下是示例代码:
public class SampleEntity
{
[Key]
public int Id { get; set; }
public string Name { get; set; }
}
// 保存实体时手动指定 ID
var entity = new SampleEntity { Id = 100, Name = "Sample" };
context.SampleEntities.Add(entity);
context.SaveChanges();
另一种实现方式是使用 Fluent API 来指定主键,并在保存时手动设置主键的值。以下是示例代码:
public class SampleContext : DbContext
{
public DbSet<SampleEntity> SampleEntities { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<SampleEntity>().HasKey(e => e.Id);
base.OnModelCreating(modelBuilder);
}
}
// 保存实体时手动指定 ID
var entity = new SampleEntity { Id = 100, Name = "Sample" };
context.SampleEntities.Add(entity);
context.SaveChanges();
本文介绍了使用 Entity Framework 实现 ID 不自动递增的两种方式,即使用 KeyAttribute 和 Fluent API 来指定主键,并在保存时手动设置主键的值。根据具体的使用场景选择合适的方式。