powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / c# ef добавить EntityTypeConfiguration в созданный DbContext
8 сообщений из 8, страница 1 из 1
c# ef добавить EntityTypeConfiguration в созданный DbContext
    #39512774
Nechto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!

У меня есть программа платформа с DbContext. В данную платформу загружаются дополнительные модули(сборки), которые работают с DbContext платформы. Каждый модуль содержит свой набор EntityTypeConfiguration<TEntity>.

Вопрос: как добавить в конфигуратор DbContext платформы, новые наборы EntityTypeConfiguration<TEntity> из модулей(сборок)?
При том, что загрузка модуля в платформу может быть не сразу.

Моя попытка которая не увенчалась успехом
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
namespace Main
{
    public class WorkDb : DbContext
    {
         private DbModelBuilder _modelBuilder;
         public Entities() : base("connectionString")
         {
         }
         public SetEntityMap<TEntityMap, TEntity>() : where TEntity : class
                                                                            where TEntityMap : EntityTypeConfiguration<TEntity >, new()
         {
              modelBuilder.Configurations.Add(new TEntityMap());
         }
         protected override void OnModelCreating(DbModelBuilder modelBuilder)
         {            
               _modelBuilder = modelBuilder;
               _modelBuilder .Configurations.Add(new HomeMap()); 
               base.OnModelCreating( _modelBuilder );
         }
    }
}



Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
namespace Other
{
    public class LoadOtherEntities()
    {         
         WorkDb.SetEntityMap<BookMap, Book>();
    }
    
    //... Описание классов Book и BookMap
}
...
Рейтинг: 0 / 0
c# ef добавить EntityTypeConfiguration в созданный DbContext
    #39512894
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nechto,

С динамическими библиотеками это не будет работать. И в общем случае это плохая идея. EF вообще не подходит для архитектуры подключаемых в рантайме модулей, он для этого не приспособлен, по многим причинам.

Тебе придётся либо подключать всё сразу и регистрировать конфигурации при старте. Либо выбрать другой ORM, например, Dapper, которому вообще пофигу, регистрировать ничего не надо.
...
Рейтинг: 0 / 0
c# ef добавить EntityTypeConfiguration в созданный DbContext
    #39512908
Nechto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVosttNechto,

С динамическими библиотеками это не будет работать. И в общем случае это плохая идея. EF вообще не подходит для архитектуры подключаемых в рантайме модулей, он для этого не приспособлен, по многим причинам.

Тебе придётся либо подключать всё сразу и регистрировать конфигурации при старте. Либо выбрать другой ORM, например, Dapper, которому вообще пофигу, регистрировать ничего не надо.

Выходит что EF из черпал мои потребности, не думал что это так быстро произойдет. Очень жаль, что он не может работать в рантайме :(.

Кроме Dapper, какие ещё можете посоветовать frameworks? Желательно с функционалом не уступающим EF.
А то так не хочется возвращаться на select * from table.
...
Рейтинг: 0 / 0
c# ef добавить EntityTypeConfiguration в созданный DbContext
    #39513032
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NechtoВыходит что EF из черпал мои потребности, не думал что это так быстро произойдет. Очень жаль, что он не может работать в рантайме :(.
Не EF исчерпал, а Моделирование не делается в рантайме.
Сущности должны быть постоянны в модели и изготовлены на этапе Моделирования-разработки ИС.
Если так нравится динамика, переходи на функциональный и динамический ЯП.
...
Рейтинг: 0 / 0
c# ef добавить EntityTypeConfiguration в созданный DbContext
    #39513066
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NechtoЖелательно с функционалом не уступающим EF.

Функционал не уступающий EF сам по себе требует однократной полной инициализации, так для управления всеми связями требует полных знаний о модели, иначе это не будет просто работать. Ты можешь подключать модуль со своим собственным контекстом, пожалуйста, кто мешает? При чём собственный контекст может расширять существующий. То, что ты хочешь, не согласуется с банальной логикой работы ORM.


NechtoА то так не хочется возвращаться на select * from table.

Не понятно вообще что ты хочешь. Если у тебя нет полных знаний о модели, так как ты подключаешь эти знания динамически, соответственно работаешь точно также — динамически, select, все дела. Это тож самое как захотеть править исходники C#, и логика программы должна на лету меняться. Если ты так хочешь бро, гоу на интерпретируемые языки.

Ну или рассказывай подробнее, чего ты хочешь добиться конкретно, для чего тебе это.
...
Рейтинг: 0 / 0
c# ef добавить EntityTypeConfiguration в созданный DbContext
    #39513748
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttNechtoЖелательно с функционалом не уступающим EF.

Функционал не уступающий EF сам по себе требует однократной полной инициализации, так для управления всеми связями требует полных знаний о модели, иначе это не будет просто работать.то есть dapper не поддерживает каких-то функций EF?
...
Рейтинг: 0 / 0
c# ef добавить EntityTypeConfiguration в созданный DbContext
    #39513785
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariydapper
На заборе пищут, что это микро ОРМ.
...
Рейтинг: 0 / 0
c# ef добавить EntityTypeConfiguration в созданный DbContext
    #39513841
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariyто есть dapper не поддерживает каких-то функций EF?

Dapper умеет отражать результаты запросов в коллекции объектов. Ну ещё умеет подставлять параметры в запросы. Есть некоторое количество расширений, добавляющих разные возможности, например, LINQ — но это конечно даже рядом не стоит с поддержкой LINQ в EF. Зато очень быстро и максимально гибко, не нужен никакой контекст, никаких знаний о модели.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / c# ef добавить EntityTypeConfiguration в созданный DbContext
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]