|
EF + Repository + DI
|
|||
---|---|---|---|
#18+
День добрый! Возник намедни такой вопрос. Есть у меня реализация репозитория: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Используется Constructor Injection: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Как правильно делать, каждый раз создавать новый экземпляр SomeEntityRepository или чтобы один раз создался и IoC-контейнер возвращал созданный при первом обращении? Насколько вообще хорошая практика хранить в контейнере экземпляры в единственном числе? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.03.2015, 17:08 |
|
EF + Repository + DI
|
|||
---|---|---|---|
#18+
xxxTIMxxxКак правильно делатьОт приложения зависит. В большинстве случаев контейнеру указывают, чтобы создавал один экземпляр на поток, или запрос. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.03.2015, 18:06 |
|
EF + Repository + DI
|
|||
---|---|---|---|
#18+
xxxTIMxxxКак правильно делать...DbContext так же должен инжектироваться контейнером + совет от skyANA. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2015, 05:20 |
|
EF + Repository + DI
|
|||
---|---|---|---|
#18+
xxxTIMxxxНасколько вообще хорошая практика хранить в контейнере экземпляры в единственном числе? Плохая практика. Создаёшь контекст, делаешь че надо, убиваешь контекст. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2015, 05:48 |
|
EF + Repository + DI
|
|||
---|---|---|---|
#18+
hVosttxxxTIMxxxНасколько вообще хорошая практика хранить в контейнере экземпляры в единственном числе? Плохая практика. Создаёшь контекст, делаешь че надо, убиваешь контекст.И таскаешь его параметром методов между сервисами. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2015, 06:04 |
|
EF + Repository + DI
|
|||
---|---|---|---|
#18+
Алексей КИ таскаешь его параметром методов между сервисами. Ето как? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2015, 08:30 |
|
EF + Repository + DI
|
|||
---|---|---|---|
#18+
hVosttАлексей КИ таскаешь его параметром методов между сервисами. Ето как?Это видимо какая-то своя реализация Unit of Work. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2015, 09:03 |
|
EF + Repository + DI
|
|||
---|---|---|---|
#18+
skyANAЭто видимо какая-то своя реализация Unit of Work. Не понятно как ето таскать параметром методов. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2015, 09:16 |
|
EF + Repository + DI
|
|||
---|---|---|---|
#18+
hVosttskyANAЭто видимо какая-то своя реализация Unit of Work. Не понятно как ето таскать параметром методов.А я понял как, у нас в старом г-коде тоже много где встречается: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9.
Мы это г. активно рефакторим. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2015, 09:39 |
|
EF + Repository + DI
|
|||
---|---|---|---|
#18+
hVosttАлексей КИ таскаешь его параметром методов между сервисами. Ето как?Если в разных методах понадобится один контекст. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2015, 10:44 |
|
EF + Repository + DI
|
|||
---|---|---|---|
#18+
skyANAhVosttпропущено... Не понятно как ето таскать параметром методов.А я понял как, у нас в старом г-коде тоже много где встречается: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9.
Мы это г. активно рефакторим.Да. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2015, 10:44 |
|
EF + Repository + DI
|
|||
---|---|---|---|
#18+
skyANAА я понял как, у нас в старом г-коде тоже много где встречается: Алексей КЕсли в разных методах понадобится один контекст. А, ну я так и подумал, передавать зависимость ручками. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2015, 10:58 |
|
EF + Repository + DI
|
|||
---|---|---|---|
#18+
Алексей КhVosttпропущено... Ето как?Если в разных методах понадобится один контекст.1. Для этого не обязательно его передавать в параметрах метода; 2. Ты кстати можешь оценить насколько часто может "понадобится один контекст в разных методах"? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2015, 11:03 |
|
EF + Repository + DI
|
|||
---|---|---|---|
#18+
skyANAАлексей Кпропущено... Если в разных методах понадобится один контекст.1. Для этого не обязательно его передавать в параметрах метода;Ну я и предложил вынести его на уровень класса и подсовывать снаружи диконтейнером. skyANA2. Ты кстати можешь оценить насколько часто может "понадобится один контекст в разных методах"?У меня часто, у остальных - не знаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2015, 11:05 |
|
EF + Repository + DI
|
|||
---|---|---|---|
#18+
Алексей КskyANAпропущено... 1. Для этого не обязательно его передавать в параметрах метода;Ну я и предложил вынести его на уровень класса и подсовывать снаружи диконтейнером.Через конструктор, свойство, как? Алексей КskyANA2. Ты кстати можешь оценить насколько часто может "понадобится один контекст в разных методах"?У меня часто, у остальных - не знаю.больше 50%? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2015, 11:08 |
|
EF + Repository + DI
|
|||
---|---|---|---|
#18+
skyANAАлексей Кпропущено... Ну я и предложил вынести его на уровень класса и подсовывать снаружи диконтейнером.Через конструктор, свойство, как?Конструктор, свойство - как больше нравится, как умеет диконтейнер. skyANAАлексей Кпропущено... У меня часто, у остальных - не знаю.больше 50%?Достаточно часто, чтобы не таскать в параметрах. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2015, 11:14 |
|
EF + Repository + DI
|
|||
---|---|---|---|
#18+
Алексей КskyANAпропущено... Через конструктор, свойство, как?Конструктор, свойство - как больше нравится, как умеет диконтейнер. skyANAпропущено... больше 50%?Достаточно часто, чтобы не таскать в параметрах.Понятно, вообщем как у нас. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2015, 11:50 |
|
EF + Repository + DI
|
|||
---|---|---|---|
#18+
Алексей К, а зачем ты вообще это написал: 17362427 ? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2015, 11:54 |
|
EF + Repository + DI
|
|||
---|---|---|---|
#18+
skyANAАлексей К, а зачем ты вообще это написал: 17362427 ?Потому что это приведёт к случаю, пример которого ты привёл. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2015, 12:36 |
|
EF + Repository + DI
|
|||
---|---|---|---|
#18+
hVosttxxxTIMxxxНасколько вообще хорошая практика хранить в контейнере экземпляры в единственном числе? Плохая практика. Создаёшь контекст, делаешь че надо, убиваешь контекст. Т.е. и сервис должен создаваться каждый раз новый? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2015, 13:05 |
|
EF + Repository + DI
|
|||
---|---|---|---|
#18+
xxxTIMxxxhVosttпропущено... Плохая практика. Создаёшь контекст, делаешь че надо, убиваешь контекст. Т.е. и сервис должен создаваться каждый раз новый? да, конечно. если операции повторяющиеся часто, можно организовать пул. в простейшем варианте можно хранить сервисы и контекст, но лучше сразу избавляться от такого подхода, будет слегка сложнее, но в итоге гораздо меньше боли. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2015, 13:44 |
|
EF + Repository + DI
|
|||
---|---|---|---|
#18+
xxxTIMxxxhVosttпропущено... Плохая практика. Создаёшь контекст, делаешь че надо, убиваешь контекст. Т.е. и сервис должен создаваться каждый раз новый?Зависит от архитектуры. Например, если это веб-приложение, то удобно привязывать время жизни сервисов и DbContext к http-запросу. Но об этом уже было сказано. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2015, 14:42 |
|
EF + Repository + DI
|
|||
---|---|---|---|
#18+
Алексей КЗависит от архитектуры. Например, если это веб-приложение, то удобно привязывать время жизни сервисов и DbContext к http-запросу. Но об этом уже было сказано. А если не веб? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2015, 15:07 |
|
EF + Repository + DI
|
|||
---|---|---|---|
#18+
hVostt, А разве большая разница веб или не веб? Там по-моему вообще один фиг разница, на UI не это завязано. А цикл жизни объекта определается вне зависимости от этого. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2015, 15:10 |
|
EF + Repository + DI
|
|||
---|---|---|---|
#18+
AxeleronhVostt, А разве большая разница веб или не веб? Там по-моему вообще один фиг разница, на UI не это завязано. А цикл жизни объекта определается вне зависимости от этого. Так к чему привязывать, если нет Http-запросов? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2015, 15:13 |
|
|
start [/forum/topic.php?fid=17&fpage=15&tid=1349607]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
68ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
71ms |
get tp. blocked users: |
2ms |
others: | 274ms |
total: | 455ms |
0 / 0 |