相关疑难解决方法(0)

实体框架核心2.0:如何配置一次抽象基类

我有一个基本模型:

public abstract class Status
{
     public string updateUserName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

然后是扩展上面定义的基本模型的模型:

public class Item : Status
{
     public int Id { get; set; }
     public string Description { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

然后我为每个定义了配置类:

public class ItemConfiguration : IEntityTypeConfiguration<Item>
{
    public void Configure(EntityTypeBuilder<Item> builder)
    {
        builder.ToTable("Item", "dbo").HasKey(c => c.Id);
        builder.Property(c => c.Description).IsRequired().HasMaxLength(100);
    }
}

public class StatusConfiguration : IEntityTypeConfiguration<Status>
{
    public void Configure(EntityTypeBuilder<Status> builder)
    {
        builder.Property(c => c.updateUserName).IsRequired().HasMaxLength(50);
    }
Run Code Online (Sandbox Code Playgroud)

现在,我有以下Context类:

public class TestDbContext : DbContext
{
    public …
Run Code Online (Sandbox Code Playgroud)

sql-server ef-code-first entity-framework-core ef-fluent-api asp.net-core-2.0

10
推荐指数
1
解决办法
5287
查看次数

如何将同一列添加到EF Core中的所有实体?

想象一下,我想向所有实体添加一个IsDeleted列或一些审核列。我可以创建一个基类,所有实体都将从该基类继承,这将解决我的问题,但是我无法指定创建列的顺序,因此我将以所有审计字段结束,然后才是实体字段,我不想要。我希望他们在桌子的尽头。

在实体框架的标准版本中,我们可以通过使用指定列顺序的注释来做到这一点。但是,目前对于EF核心还不存在这种情况。

我可以使用OnModelCreating()方法上的流利api来做到这一点,问题在于我只知道如何为我的每个实体单独进行操作,这意味着我必须为我拥有的每个实体编写相同的代码。

有什么办法可以为我所有的实体通用吗?某种for循环遍历我在dbcontext的DbSet中注册的所有实体?

c# entity-framework entity-framework-core .net-core

1
推荐指数
1
解决办法
1278
查看次数