Я работаю над проектом .NET Core, использующим ядро Entity Framework (2.0.1).
У меня есть архитектура плагинов, требующая загрузки различных моделей на основе подключенных плагинов, поэтому пытаюсь динамически загружать модели при добавлении dbcontext в контейнер DI с помощью метода DbContextOptionsBuilder.UseModel.
Независимо от того, определяю ли я новую модель или ModelBuilder, добавляемые мною EntityTypes, по-видимому, работают неправильно, и после добавления в dbcontext они не имеют никаких свойств.
Я не уверен, есть ли соглашение, которое мне нужно добавить, чтобы это работало, или то, что я могу упустить.Любая помощь будет оценена.
_services.AddDbContext<DataContext>(options =>
{
switch (_config.DatabaseType.ToLower())
{
case "postgres":
options.UseNpgsql(_config.ConnectionString);
break;
case "sqlserver":
options.UseSqlServer(_config.ConnectionString);
break;
}
var convention = new Microsoft.EntityFrameworkCore.Metadata.Conventions.ConventionSet();
var mb = new ModelBuilder(convention);
foreach (var definition in definitionList)
{
mb.Entity(definition.Type);
}
options.UseModel(mb.Model);
});
Разрешается в:
Правильно создает 5 типов EntityTypes, но затем, как только я развернуодин из типов сущностей не имеет свойств.
Если я сделаю то же самое, используя стандартное соглашение о добавлении EntityType с помощью переопределения dbcontext onmodelbuilding, все свойства будут там правильно ...