在以前版本的 EF 中,您可以像这样在 DbContext 上配置所有实体映射:-
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Configurations.AddFromAssembly(typeof(MyDbContext).Assembly);
base.OnModelCreating(modelBuilder);
}
但是,在最新的 EF Core 中,您似乎必须像这样单独添加每个映射:-
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.ApplyConfiguration(new UserMap());
modelBuilder.ApplyConfiguration(new AddressMap());
base.OnModelCreating(modelBuilder);
}
有没有类似的添加实体映射的方法,因为这很乏味。
这AddFromAssembly
与 EF6相同:
var configurations = typeof(MyDbContext).Assembly.GetTypes()
.Where(t => t.BaseType != null && t.BaseType.IsGenericType && t.BaseType.GetGenericTypeDefinition() == typeof(System.Data.Entity.ModelConfiguration.EntityTypeConfiguration<>));
foreach (var config in configurations)
{
dynamic instance = System.Activator.CreateInstance(config);
modelBuilder.Configurations.Add(instance);
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句