|
EF. Зачем хранить DBContext в словаре по типу репозитория?
|
|||
---|---|---|---|
#18+
сабж ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2020, 09:23 |
|
EF. Зачем хранить DBContext в словаре по типу репозитория?
|
|||
---|---|---|---|
#18+
Соответственно чз DI внедряем фабрику контекстов, например чз конструктор Код: c# 1.
и где нужно получаем контекст по типу рапозитория: Код: c# 1.
а в фабрике, контексты в словаре по типу репозитория Зачем так? Сразу внедряли бы контексты ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2020, 09:34 |
|
EF. Зачем хранить DBContext в словаре по типу репозитория?
|
|||
---|---|---|---|
#18+
Ты бухой, что ли? Чо это за WTF? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2020, 09:37 |
|
EF. Зачем хранить DBContext в словаре по типу репозитория?
|
|||
---|---|---|---|
#18+
fkthat Ты бухой, что ли? Чо это за WTF? Похоже для экономии ресурсов Последний раз видел такое в московском клубе программистов, когда инет магаз писали сейчас найду видео ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2020, 10:17 |
|
EF. Зачем хранить DBContext в словаре по типу репозитория?
|
|||
---|---|---|---|
#18+
listtoview, Я, впрочем, понял о чем ты. Подход вполне норм. Встроенный dependency injection не позволяет использовать "named" или "keyed" регистрации, как, например, Autofac, поэтому когда это нужно (резолвить один и тот же сервис разными реализациями), то это и делают через фабрику. Но, в случае DbContext проще действительно вставлять сразу нужный тип контекста. У нас у самих это сделано как у вас через жопу и бесит всякий раз Код: c# 1. 2. 3. 4.
Типичное изобретение горящеглазых, которое кроме лишнего шума в коде не приносит никакой практической выгоды. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2020, 10:46 |
|
EF. Зачем хранить DBContext в словаре по типу репозитория?
|
|||
---|---|---|---|
#18+
fkthat, а что кодите, если не секрет? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2020, 11:28 |
|
EF. Зачем хранить DBContext в словаре по типу репозитория?
|
|||
---|---|---|---|
#18+
А вот у нас нет DBContext и нет проблем :) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2020, 11:44 |
|
EF. Зачем хранить DBContext в словаре по типу репозитория?
|
|||
---|---|---|---|
#18+
skyANA А вот у нас нет DBContext и нет проблем :) Все на датасетах? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2020, 11:45 |
|
EF. Зачем хранить DBContext в словаре по типу репозитория?
|
|||
---|---|---|---|
#18+
listtoview fkthat, а что кодите, если не секрет? Да ничего особенного, обычная типовая трехзвенка: ангуляр -> API контроллеры -> сервисы BL -> EF -> Postgres. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2020, 11:49 |
|
EF. Зачем хранить DBContext в словаре по типу репозитория?
|
|||
---|---|---|---|
#18+
skyANA А вот у нас нет DBContext и нет проблем :) SQLCommand ? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2020, 11:57 |
|
EF. Зачем хранить DBContext в словаре по типу репозитория?
|
|||
---|---|---|---|
#18+
listtoview skyANA А вот у нас нет DBContext и нет проблем :) SQLCommand ? :) Access, FoxPro? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2020, 13:34 |
|
EF. Зачем хранить DBContext в словаре по типу репозитория?
|
|||
---|---|---|---|
#18+
listtoview SQLCommand ? :) Хрустальный шар говорит: NoSQLCommand)) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2020, 13:56 |
|
EF. Зачем хранить DBContext в словаре по типу репозитория?
|
|||
---|---|---|---|
#18+
skyANA А вот у нас нет DBContext и нет проблем :) Ахах ))) У столяра тоже нет проблем с контекстом, с базами данных, с ЯП и другими технологиями тоже нет проблем ))) Но вообще, стоит признать, DbContext это полная шляпа, если проект выходит за рамки небольшого-среднего, то начинаются проблемы, при чём по большей части архитектурные. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2020, 14:56 |
|
EF. Зачем хранить DBContext в словаре по типу репозитория?
|
|||
---|---|---|---|
#18+
fkthat listtoview пропущено... SQLCommand ? :) Access, FoxPro? BDE ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2020, 15:14 |
|
EF. Зачем хранить DBContext в словаре по типу репозитория?
|
|||
---|---|---|---|
#18+
не, ну согласитесь, я хоть примерно начинаю понимать как правильно писать программу :) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2020, 15:16 |
|
EF. Зачем хранить DBContext в словаре по типу репозитория?
|
|||
---|---|---|---|
#18+
hVostt Но вообще, стоит признать, DbContext это полная шляпа, если проект выходит за рамки небольшого-среднего, то начинаются проблемы, при чём по большей части архитектурные. Ну, дробить его на более мелкие. По контекстам домена. БД где 100500 тысяч сущностей в одну кучу, это сама по себе как-то не подарок, хоть через DBContext с ней работай, хоть как. У нас в далекие времена еще .NET 2.0 был один чувак, который создал типизированный датасет, что при открытии него в дизайнере студия крешилась, потому что там было больше чем полтыщи таблиц ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2020, 19:35 |
|
EF. Зачем хранить DBContext в словаре по типу репозитория?
|
|||
---|---|---|---|
#18+
fkthat hVostt Но вообще, стоит признать, DbContext это полная шляпа, если проект выходит за рамки небольшого-среднего, то начинаются проблемы, при чём по большей части архитектурные. Ну, дробить его на более мелкие. По контекстам домена. БД где 100500 тысяч сущностей в одну кучу, это сама по себе как-то не подарок, хоть через DBContext с ней работай, хоть как. У нас в далекие времена еще .NET 2.0 был один чувак, который создал типизированный датасет, что при открытии него в дизайнере студия крешилась, потому что там было больше чем полтыщи таблиц Да не.. многолетняя практика показывает, что EF и DbContext подходит только для небольших проектов. Ну или в доску примитивных, где ничего сложнее CRUD-а нет. От того сколько там сущностей, 10 или 100500 вообще монопенисуально, это сути не меняет. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2020, 00:06 |
|
EF. Зачем хранить DBContext в словаре по типу репозитория?
|
|||
---|---|---|---|
#18+
hVostt Да не.. многолетняя практика показывает, что EF и DbContext подходит только для небольших проектов. Ну или в доску примитивных, где ничего сложнее CRUD-а нет. Если с БД так или иначе работать надо, то через ЕФ это всяко удобнее делать из-за той же типизации данных. Ты же не будешь как в начале двухтысячных все через датаридеры читать и через DbCommand сохранять. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2020, 02:14 |
|
EF. Зачем хранить DBContext в словаре по типу репозитория?
|
|||
---|---|---|---|
#18+
fkthat Если с БД так или иначе работать надо, то через ЕФ это всяко удобнее делать из-за той же типизации данных. Ты же не будешь как в начале двухтысячных все через датаридеры читать и через DbCommand сохранять. Если тебе маппинг нужен, то есть микро-ормы, которые решают эту задачу эффективно и гибко. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2020, 04:23 |
|
EF. Зачем хранить DBContext в словаре по типу репозитория?
|
|||
---|---|---|---|
#18+
hVostt fkthat Если с БД так или иначе работать надо, то через ЕФ это всяко удобнее делать из-за той же типизации данных. Ты же не будешь как в начале двухтысячных все через датаридеры читать и через DbCommand сохранять. Если тебе маппинг нужен, то есть микро-ормы, которые решают эту задачу эффективно и гибко. Поделки-недоормы типа Даппера? Смысл их использовать? Все проблемы с полноценными ORMами только от непонимания механизмов их работы. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2020, 08:38 |
|
EF. Зачем хранить DBContext в словаре по типу репозитория?
|
|||
---|---|---|---|
#18+
fkthat Поделки-недоормы типа Даппера? Смысл их использовать? Все проблемы с полноценными ORMами только от непонимания механизмов их работы. Ну погоди... Судя по тому, что ты прям категорически настаивал, что тебе не нужен DbContext в Scoped, значит ты совершенно не используешь полноценно все преимущества именно EF, как ORM. Тебе нужен тупой маппер. Т.е. ты используешь EF, как поделку-недоорм. Какие претензии? Берёшь в таком случае более подходящий инструмент. Какой смысл говорить, что лопата это "поделка", а надо использовать экскаватор, но при этом в другом топике ты топил за то, что каждому человеку нужно выдать по персональному экскаватору, а не использовать один на бригаду Ты уж определись. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2020, 05:39 |
|
EF. Зачем хранить DBContext в словаре по типу репозитория?
|
|||
---|---|---|---|
#18+
fkthat Все проблемы с полноценными ORMами только от непонимания механизмов их работы. А там прям высшая математика, для избранных священнослужителей, прошедших курс 10-летней медитации? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2020, 05:41 |
|
EF. Зачем хранить DBContext в словаре по типу репозитория?
|
|||
---|---|---|---|
#18+
hVostt Ну погоди... Судя по тому, что ты прям категорически настаивал, что тебе не нужен DbContext в Scoped, значит ты совершенно не используешь полноценно все преимущества именно EF, как ORM. Тебе нужен тупой маппер. А ЕФ использовать как ORM можно только в scoped? Это где-то прямо в доке по EF так написано? :)) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2020, 09:47 |
|
EF. Зачем хранить DBContext в словаре по типу репозитория?
|
|||
---|---|---|---|
#18+
fkthat А ЕФ использовать как ORM можно только в scoped? Это где-то прямо в доке по EF так написано? :)) https://docs.microsoft.com/en-US/aspnet/core/fundamentals/dependency-injection?view=aspnetcore-5.0#entity-framework-contexts By default, Entity Framework contexts are added to the service container using the scoped lifetime because web app database operations are normally scoped to the client request . И обрати внимание: Services of a given lifetime shouldn't use a database context with a lifetime that's shorter than the service's lifetime. Документацию стоит хоть иногда открывать :) Ну и в исходниках, которые открыты, тоже много чего полезного можно для себя открыть. Я конечно понимаю, фантазировать -- оно безусловно интересней, чем работать с реальностью. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2020, 23:59 |
|
EF. Зачем хранить DBContext в словаре по типу репозитория?
|
|||
---|---|---|---|
#18+
hVostt By default, Entity Framework contexts are added to the service container using the scoped lifetime because web app database operations are normally scoped to the client request . Вот уж глаза мне открыл - без тебя я про это даже не догадывался Прочитай внимательней мое сообщение. Где сказано, что контекст ЕФ можно использовать только как scoped сервис и никак иначе? hVostt Services of a given lifetime shouldn't use a database context with a lifetime that's shorter than the service's lifetime. Если у тебя все без всякой нужды зарегано как singleton (настолько регулярно такое встречаю, что уже готов за это руки отрывать), то у тебя даже как scoped его использовать не получится. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2020, 00:31 |
|
|
start [/forum/topic.php?fid=18&msg=40021956&tid=1354598]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
41ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
others: | 268ms |
total: | 415ms |
0 / 0 |