using Microsoft.EntityFrameworkCore.Metadata.Builders; using Microsoft.EntityFrameworkCore.Metadata.Conventions; using System.Linq; namespace IRaCIS.Core.Test { /// /// Efcore 最新支持批量配置字符串类型长度作为保底的 官网参考:https://learn.microsoft.com/zh-cn/ef/core/modeling/bulk-configuration#conventions /// public class MaxStringLengthConvention : IModelFinalizingConvention { public void ProcessModelFinalizing(IConventionModelBuilder modelBuilder, IConventionContext context) { foreach (var property in modelBuilder.Metadata.GetEntityTypes() .SelectMany( entityType => entityType.GetDeclaredProperties() .Where( property => property.ClrType == typeof(string)))) { property.Builder.HasMaxLength(200); } } } }