EF核心实体配置未在OnModelCreating中应用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EF核心实体配置未在OnModelCreating中应用相关的知识,希望对你有一定的参考价值。
我现在有一个简单的上下文,它使用一些像这样的基类:
public abstract class EntityBase
public int Id get; set;
public abstract class TranslatableEntityBase : EntityBase
public string TranslationKey get; set;
public TranslatableEntityBase(string translationKey) : base()
TranslationKey = translationKey;
public class Country : TranslatableEntityBase
public Country(string name, string code, string translationKey)
: base(translationKey)
Name = name;
Code = code;
public string Name get; set;
public string Code get; set;
这些配置也具有这样的基类:
public abstract class EntityBaseConfiguration<T> : IEntityTypeConfiguration<T> where T : EntityBase
public virtual void Configure(EntityTypeBuilder<T> builder)
public abstract class TranslatableEntityBaseConfiguration<T> : EntityBaseConfiguration<T> where T : TranslatableEntityBase
// Hide parent method to provide overridable one to children
public new virtual void Configure(EntityTypeBuilder<T> builder)
base.Configure(builder);
builder.Property(e => e.TranslationKey)
.IsRequired()
.HasMaxLength(255);
public class CountryConfiguration : TranslatableEntityBaseConfiguration<Country>
public override void Configure(EntityTypeBuilder<Country> builder)
base.Configure(builder);
builder.Property(c => c.Name)
.IsRequired()
.HasMaxLength(255);
builder.Property(c => c.Code)
.IsRequired()
.HasMaxLength(3);
而且我的上下文是这样定义的:
public class MyContext : DbContext
public MyContext(DbContextOptions options)
: base(options)
public DbSet<Country> Countries get; set;
protected override void OnModelCreating(ModelBuilder modelBuilder)
base.OnModelCreating(modelBuilder);
modelBuilder.ApplyConfigurationsFromAssembly(GetType().Assembly);
[当我运行dotnet ef migrations add InitialMigration
时,它将创建迁移,但是未应用实体的配置(无最大长度或不需要)。>>
我已经尝试过直接使用modelBuilder.ApplyConfiguration(new CountryConfiguration());
,但结果相同。
我想念什么?是因为继承吗?
谢谢
我现在有一个简单的上下文,它使用一些像这样的基类:公共抽象类EntityBase public int Id get;组; 公共抽象类TranslatableEntityBase:...
答案
好,我找到了。
以上是关于EF核心实体配置未在OnModelCreating中应用的主要内容,如果未能解决你的问题,请参考以下文章
在 EF7(核心)OnModelCreating 中使用自定义属性