using CMS.Plugin.HIAWms.Domain; using CMS.Plugin.HIAWms.Domain.WmsInOutStockOrder; using CMS.Plugin.HIAWms.Domain.WmsInOutStockOrderDetail; using Microsoft.EntityFrameworkCore; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Volo.Abp; using Volo.Abp.EntityFrameworkCore.Modeling; namespace CMS.Plugin.HIAWms.EntityFrameworkCore.Extensions { public static partial class CMSPluginEfCoreExtensions { /// /// Includes the details. /// /// The queryable. /// if set to true [include]. /// public static IQueryable IncludeDetails(this IQueryable queryable, bool include = true) { if (!include) { return queryable; } return queryable; } /// /// Configure WmsInOutStockOrderDetail /// /// public static void ConfigureWmsInOutStockOrderDetail(this ModelBuilder builder) { Check.NotNull(builder, nameof(builder)); builder.Entity(b => { b.ToTable((CMSPluginDbProperties.DbTablePrefix + "WmsInOutStockOrderDetail").ToLower(), CMSPluginDbProperties.DbSchema) .HasComment("出入库单据明细表"); // 复合主键配置(根据业务需求调整) b.HasKey(x => new { x.OrderNo, x.MaterialId }); // 字段配置 b.Property(x => x.OrderNo) .HasMaxLength(50) .IsRequired() .HasComment("单据编号"); b.Property(x => x.OrderType) .IsRequired() .HasComment("单据类型(枚举值)"); b.Property(x => x.MaterialNo) .HasMaxLength(50) .IsRequired() .HasComment("物料件号"); b.Property(x => x.MaterialName) .HasMaxLength(100) .HasComment("物料名称"); b.Property(x => x.MaterialId) .HasMaxLength(64) .IsRequired() .HasComment("物料唯一码"); b.Property(x => x.ContainerNo) .HasMaxLength(50) .HasComment("容器编号"); b.Property(x => x.MaterialModel) .HasMaxLength(50) .HasComment("机型"); b.Property(x => x.MaterialBatch) .HasComment("物料批次"); // 索引配置(根据查询需求优化) b.HasIndex(x => x.OrderNo); // 单据查询 b.HasIndex(x => x.MaterialNo); // 物料查询 b.HasIndex(x => x.MaterialId); // 唯一码查询 b.HasIndex(x => x.ContainerNo); // 容器查询 b.HasIndex(x => new { x.OrderNo, x.OrderType }); // 联合查询 // ABP框架配置 b.ConfigureByConvention(); b.ApplyObjectExtensionMappings(); }); } } }