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();
});
}
}