Gay*_*yan 1 c# dbcontext entity-framework-core asp.net-core entity-framework-migrations
我需要使用特定类型的实体创建数据库上下文,因为我在解决方案上有多个数据库上下文。我的问题是OnModelCreating我们从程序集中应用配置builder.ApplyConfigurationsFromAssembly(Assembly.GetExecutingAssembly())所以我想仅使用IEntityTypeConfiguration具有基本模型的实体的类型来应用配置BaseEntity,如下所示
public class DaysOfWeekBuilder : IEntityTypeConfiguration<DaysOfWeek>
{
public void Configure(EntityTypeBuilder<DaysOfWeek> builder)
{
builder.ToTable("DaysOfWeek");
builder.Property(e => e.Name).HasMaxLength(15);
}
}
Run Code Online (Sandbox Code Playgroud)
所以DaysOfWeek实体有基类BaseEntity
public class DaysOfWeek : BaseEntity
{
public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我们如何 IEntityTypeConfiguration使用具有基本模型的实体进行过滤BaseEntity?
谢谢
该文档说您可以添加用于过滤的谓词作为第二个参数。
在这种情况下,谓词将扫描类型,并且对于每种类型,将检查它是否实现接口IEntityTypeConfiguration<T>以及 T 是否继承BaseEntity。
builder.ApplyConfigurationsFromAssembly(
Assembly.GetExecutingAssembly(),
t => t.GetInterfaces().Any(i =>
i.IsGenericType &&
i.GetGenericTypeDefinition() == typeof(IEntityTypeConfiguration<>) &&
typeof(BaseEntity).IsAssignableFrom(i.GenericTypeArguments[0]))
);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
960 次 |
| 最近记录: |