在Ardalis CleanArchitecture中Domain Events为何在EF迁移时被忽略?
实现原因
这个效果是EF Core的默认映射约定带来的,不需要额外的显式忽略配置:
- EF Core默认的映射规则仅包含类的公共读写属性,你给出的
BaseEntity代码中,Events是直接定义的公共字段,没有配置get/set访问器,不属于EF Core的默认映射范围,所以执行EF Migrations时会自动被跳过。 - 如果你需要让公共字段被EF Core映射到数据库,反而需要手动通过Fluent API显式配置映射规则,示例如下:
protected override void OnModelCreating(ModelBuilder modelBuilder) { // 显式配置映射Events字段 modelBuilder.Entity<BaseEntity>() .HasMany<BaseDomainEvent>("Events"); }
内容的提问来源于stack exchange,提问作者Sebastian
相关产品推荐
相关产品推荐

