using MediatR; using Microsoft.EntityFrameworkCore; using NetCorePal.Extensions.DistributedTransactions.CAP.Persistence; using Fengling.Backend.Domain.AggregatesModel.AdminAggregate; using Fengling.Backend.Domain.AggregatesModel.MemberAggregate; using Fengling.Backend.Domain.AggregatesModel.MarketingCodeAggregate; using Fengling.Backend.Domain.AggregatesModel.PointsRuleAggregate; using Fengling.Backend.Domain.AggregatesModel.PointsTransactionAggregate; using Fengling.Backend.Domain.AggregatesModel.GiftAggregate; using Fengling.Backend.Domain.AggregatesModel.RedemptionOrderAggregate; using Fengling.Backend.Domain.AggregatesModel.CategoryAggregate; using Fengling.Backend.Domain.AggregatesModel.ProductAggregate; namespace Fengling.Backend.Infrastructure; public partial class ApplicationDbContext(DbContextOptions options, IMediator mediator) : AppDbContextBase(options, mediator) , ISqliteCapDataStorage { // 管理员聚合 public DbSet Admins => Set(); // 会员聚合 public DbSet Members => Set(); public DbSet PointsTransactions => Set(); // 营销码聚合 public DbSet MarketingCodes => Set(); // 积分规则聚合 public DbSet PointsRules => Set(); // 礼品聚合 public DbSet Gifts => Set(); // 兑换订单聚合 public DbSet RedemptionOrders => Set(); // 品类聚合 public DbSet Categories => Set(); // 产品聚合 public DbSet Products => Set(); protected override void OnModelCreating(ModelBuilder modelBuilder) { if (modelBuilder is null) { throw new ArgumentNullException(nameof(modelBuilder)); } modelBuilder.ApplyConfigurationsFromAssembly(typeof(ApplicationDbContext).Assembly); base.OnModelCreating(modelBuilder); } protected override void ConfigureConventions(ModelConfigurationBuilder configurationBuilder) { ConfigureStronglyTypedIdValueConverter(configurationBuilder); base.ConfigureConventions(configurationBuilder); } }