using CMS.Plugin.HIAWms.Domain; using CMS.Plugin.HIAWms.Domain.WmsMaterialInfos; using CMS.Plugin.HIAWms.Domain.Shared.WmsMaterialInfos; using Microsoft.EntityFrameworkCore; using Volo.Abp; using Volo.Abp.EntityFrameworkCore.Modeling; namespace CMS.Plugin.HIAWms.EntityFrameworkCore.Extensions; /// /// EfCore扩展 /// 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; } /// /// Configures the wmsmaterialinfo. /// /// The builder. public static void ConfigureWmsMaterialInfo(this ModelBuilder builder) { Check.NotNull(builder, nameof(builder)); builder.Entity(b => { // 配置表和架构名称 b.ToTable((CMSPluginDbProperties.DbTablePrefix + "_WmsMaterialInfos").ToLower(), CMSPluginDbProperties.DbSchema) .HasComment("WMS物料信息表"); b.ConfigureByConvention(); // 主键配置 b.HasKey(x => x.Id); // 属性配置 b.Property(x => x.MaterialNo) .HasMaxLength(WmsMaterialInfoConsts.MaxMaterialNoLength) .IsRequired() .HasComment("物料代号"); b.Property(x => x.MaterialName) .HasMaxLength(WmsMaterialInfoConsts.MaxMaterialNameLength) .IsRequired() .HasComment("物料名称"); b.Property(x => x.MaterialModel) .HasMaxLength(WmsMaterialInfoConsts.MaxMaterialModelLength) .HasComment("机型/规格"); b.Property(x => x.MaterialId) .HasMaxLength(WmsMaterialInfoConsts.MaxMaterialIdLength) .IsRequired() .HasComment("物料唯一码"); b.Property(x => x.StockNumber) .HasComment("库存数量"); b.Property(x => x.MaterialBatch) .HasMaxLength(WmsMaterialInfoConsts.MaxMaterialBatchLength) .HasComment("物料批号"); b.Property(x => x.SupplierCode) .HasMaxLength(WmsMaterialInfoConsts.MaxSupplierCodeLength) .HasComment("供应商编号"); b.Property(x => x.CheckStatus) .HasComment("检验状态(0:未检验,1:检验通过,2:检验不通过)"); b.Property(x => x.RedundantField1) .HasMaxLength(WmsMaterialInfoConsts.MaxRedundantFieldLength) .HasComment("冗余字段1"); b.Property(x => x.RedundantField2) .HasMaxLength(WmsMaterialInfoConsts.MaxRedundantFieldLength) .HasComment("冗余字段2"); b.Property(x => x.RedundantField3) .HasMaxLength(WmsMaterialInfoConsts.MaxRedundantFieldLength) .HasComment("冗余字段3"); b.Property(x => x.Sort) .HasDefaultValue(0) .HasComment("排序"); b.Property(x => x.Remark) .HasMaxLength(WmsMaterialInfoConsts.MaxRemarkLength) .HasComment("备注"); b.Property(x => x.IsDisabled) .HasComment("是否禁用"); // 索引配置 b.HasIndex(x => x.MaterialNo).IsUnique(); b.HasIndex(x => x.MaterialName); b.HasIndex(x => x.MaterialId).IsUnique(); b.HasIndex(x => x.MaterialBatch); b.HasIndex(x => x.SupplierCode); b.HasIndex(x => x.CheckStatus); // 扩展属性配置 b.ApplyObjectExtensionMappings(); }); } }