📜  实体框架 ID 不自动递增 - C# (1)

📅  最后修改于: 2023-12-03 14:53:36.341000             🧑  作者: Mango

实体框架 ID 不自动递增 - C#

介绍

在使用 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 来指定主键,并在保存时手动设置主键的值。根据具体的使用场景选择合适的方式。