-
Notifications
You must be signed in to change notification settings - Fork 767
Closed
Labels
Milestone
Description
您的功能请求与现有问题有关吗?请描述
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
给实体映射项目EntityConfiguration添加分部类partial支持,以便自定义不同数据库的数据列的不同配置需求
例如:User的配置如下
UserConfiguration.cs
public partial class UserConfiguration : EntityTypeConfigurationBase<User, int>
{
/// <summary>
/// 重写以实现实体类型各个属性的数据库配置
/// </summary>
/// <param name="builder">实体类型创建器</param>
public override void Configure(EntityTypeBuilder<User> builder)
{
builder.HasIndex(m => new { m.NormalizedUserName, m.DeletedTime }).HasName("UserNameIndex").IsUnique();
builder.HasIndex(m => new { m.NormalizeEmail, m.DeletedTime }).HasName("EmailIndex");
builder.Property(m => m.ConcurrencyStamp).IsConcurrencyToken();
EntityConfigurationAppend(builder);
}
/// <summary>
/// 额外的数据映射
/// </summary>
partial void EntityConfigurationAppend(EntityTypeBuilder<User> builder);
}
在mysql 8.x 中,需要对User的字符串类型进行长度限制,可添加如下类型进行配置:
UserConfiguration.mysql.cs
public partial class UserConfiguration
{
partial void EntityConfigurationAppend(EntityTypeBuilder<User> builder)
{
builder.Property(m => m.UserName).HasMaxLength(200);
}
}