You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
How can I create Repository with amount of DbSet for different tables? #189
Работаю с базой SQLServer. В ней с десяток разных таблиц, связанных между собой ключами. Все реализовал согласно документации (IRepository, RepositoryBase), все работает, контекст таблицы получаю. Но только одной, а бывают нужны сразу и другие. Каждый раз для каждой таблицы вызывать Storage.GetRepository().All() - слишком громоздко и даже возникают непонятные баги при одновременном переключении контекста и сохранении изменений.
Каким образом я могу получить набор DbSet-ов всех таблиц разом?
Я посмотрел исходники - в них RepositoryBase содержит только одно поле DbSet (естественно - это же generic), а мне бы их несколько разом. Либо как-то переопределить IRepository.SetStorageContext(IStorageContext storageContext) так, чтобы он возвращал мне мой DbContext... но тут я уже запутался что где надо переопределять...
Мне даже не столько нужен сам DbContext, сколько просто набор DbSet-ов для разных таблиц.
Можете подсказать как грамотнее это попробовать сделать или в какую сторону смотреть?
Вам доступно это свойство и оно является при использовании EF DbContext.
Но нет по сути никакого "переключения контекстов" при работе с разными сущностями, там не может быть связанных с этим багов, так как это по сути стандартный сценарий использования DbSet. Мы повсеместно работаем сразу со многими сущностями и никогда не имели подобных проблем.
Activity
DmitrySikorsky commentedon Mar 16, 2021
https://github.com/ExtCore/ExtCore/blob/master/src/ExtCore.Data.EntityFramework/Storage.cs#L22
Вам доступно это свойство и оно является при использовании EF DbContext.
Но нет по сути никакого "переключения контекстов" при работе с разными сущностями, там не может быть связанных с этим багов, так как это по сути стандартный сценарий использования DbSet. Мы повсеместно работаем сразу со многими сущностями и никогда не имели подобных проблем.