在 EF Core 中,可以使用以下方法来实现具有类型为 List 的属性的实体:

  1. 创建一个新的实体类,并将属性定义为 List 类型:
public class MyEntity
{
    public int Id { get; set; }
    public List<long> MyList { get; set; }
}
  1. 在 DbContext 中添加 DbSet
public class MyDbContext : DbContext
{
    public DbSet<MyEntity> MyEntities { get; set; }
}
  1. 在 OnModelCreating 方法中使用 HasConversion 方法将 List 属性转换为字符串:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    modelBuilder.Entity<MyEntity>()
        .Property(e => e.MyList)
        .HasConversion(
            v => string.Join(',', v),
            v => v.Split(',', StringSplitOptions.RemoveEmptyEntries).Select(long.Parse).ToList()
        );
}

这将把 List 属性转换为逗号分隔的字符串,以便 EF Core 可以将其存储在数据库中。在检索实体时,EF Core 将自动将字符串转换回 List 类型。

EF Core 实体属性 List<long> 实现方法

原文地址: https://www.cveoy.top/t/topic/gQ27 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录