【发布时间】:2022-07-12 16:12:14
【问题描述】:
我在 ef core 6 中使用代码优先。我正在使用 fluent api 配置我的实体。每个实体都有一个继承自IEntityTypeconfiguration 的配置类。我使用 ApplyConfigurationsFromAssembly 而不是 ApplyConfiguration<> 因为有很多实体。
问题是您无法在配置类中解析或注入自定义接口。
上下文:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.ApplyConfigurationsFromAssembly(typeof(AppDbContext).Assembly);
}
如果我进行构造函数注入,则不会在添加迁移中触发
public class FooConfiguration : IEntityTypeConfiguration<Foo>
{
public IFooDomainService _service {get; set;}
public FooConfiguration (IFooDomainService service)
{
_service = service
}
public void Configure(EntityTypeBuilder<Foo> builder)
{
//Not triggering when add-migration because IFooDomainService param is need
builder.HasData(_service.Create("Foo","Bar"))
}
}
IEntityTypeconfiguration中的接口如何使用?
【问题讨论】:
-
@NemanjaTodorovic 不是。我有很多服务。我不应该将所有服务都作为参数发送。
-
@OkanKaradag 然后将服务解析器作为参数发送 =)
-
还有
_service究竟做了什么?我认为在一般情况下这样做是一个糟糕的设计。 -
我正在使用 ddd。当我创建实体时,我应该依赖域规则和逻辑,以确保一致性。
标签: c# asp.net asp.net-core entity-framework-core .net-6.0