|
generic+Include
|
|||
---|---|---|---|
#18+
Всем привет, при реализации паттерна UnitOfWork+Repository у меня возникла проблема. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. 191. 192. 193. 194. 195. 196. 197. 198. 199. 200. 201. 202. 203. 204. 205. 206. 207. 208. 209.
Собственно вопрос, можно ли расширить функционал GetWithDeptInclude, так, чтобы можно было задавать произвольную комбинацию Incllude c произвольным уровнем вложенности (ThenInclude)? Что-то типа Код: c# 1.
Можете посоветовать в какую сторону смотреть чтобы реализовать такую функциональность только на дженериках, без рефлексии? Спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2019, 09:52 |
|
generic+Include
|
|||
---|---|---|---|
#18+
fluent паттерн https://metanit.com/sharp/patterns/6.1.php ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2019, 12:16 |
|
generic+Include
|
|||
---|---|---|---|
#18+
fkthat, что лучше инжектить контексты в контроллеры? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2019, 13:14 |
|
generic+Include
|
|||
---|---|---|---|
#18+
vb_subfkthat, что лучше инжектить контексты в контроллеры? Нет. Репо - нормальный паттерн. Антипаттерн - это обобщенный репо на все случаи жизни. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2019, 14:19 |
|
generic+Include
|
|||
---|---|---|---|
#18+
fkthatvb_subfkthat, что лучше инжектить контексты в контроллеры? Нет. Репо - нормальный паттерн. Антипаттерн - это обобщенный репо на все случаи жизни. Так нормальный или все же нет? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2019, 14:30 |
|
generic+Include
|
|||
---|---|---|---|
#18+
ЕвгенийВ, холивар же. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2019, 14:31 |
|
generic+Include
|
|||
---|---|---|---|
#18+
fkthat, Вы в контроллерах держите namespace от ORM, или же через пробрасываете абстракцию? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2019, 14:32 |
|
generic+Include
|
|||
---|---|---|---|
#18+
vb_subМожете посоветовать в какую сторону смотреть чтобы реализовать такую функциональность только на дженериках, без рефлексии? Спасибо Советую возвращать IQueryable и делать Include по месту требования. Выбросьте все статьи на помойку, где вам рекомендуют возвращать IEnumerable -- их писали абсолютные бездарности и неучи, без шуток. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2019, 23:47 |
|
generic+Include
|
|||
---|---|---|---|
#18+
По-хорошему, конечно, Include зло и порождает очень плохо поддерживаемый код, в котором вы только и будете ловить ошибки забытого Include, в конце плюнете и будете инклюдить всё и всегда, даже там, где это не нужно. А потом откроете для себя Lazy, но столкнётесь с проблемой SQL+1. Затем решите как-то грамотно комбинировать Include + Lazy. И поимеете две проблемы сразу. Потом разочаруетесь в EF, жизни и вообще, решите, что лучше пойти работать плотником. Естественно, решение, это работать с проекциями, а сущности EF это просто декларативное описание структуры данных. Нормально работать с DDD можно только в CQRS, рано или поздно понимание придёт :) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2019, 23:51 |
|
generic+Include
|
|||
---|---|---|---|
#18+
hVostt, а еще дальше плюнешь на ддд, ббб, ооо,..., и другую фигню и будешь решать поставленную задачу оптимальным образом - простую просто, сложную сложно :) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2019, 00:15 |
|
generic+Include
|
|||
---|---|---|---|
#18+
ViPRoshVostt, а еще дальше плюнешь на ддд, ббб, ооо,..., и другую фигню и будешь решать поставленную задачу оптимальным образом - простую просто, сложную сложно :) Это уже последняя миля ) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2019, 00:22 |
|
generic+Include
|
|||
---|---|---|---|
#18+
hVosttПо-хорошему, конечно, Include зло и порождает очень плохо поддерживаемый код, в котором вы только и будете ловить ошибки забытого Include, в конце плюнете и будете инклюдить всё и всегда, даже там, где это не нужно. А потом откроете для себя Lazy, но столкнётесь с проблемой SQL+1. Затем решите как-то грамотно комбинировать Include + Lazy. И поимеете две проблемы сразу. Потом разочаруетесь в EF, жизни и вообще, решите, что лучше пойти работать плотником. Естественно, решение, это работать с проекциями, а сущности EF это просто декларативное описание структуры данных. Нормально работать с DDD можно только в CQRS, рано или поздно понимание придёт :) Че-то грустно это как-то, я надеялся на свет в конце тоннеля. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2019, 09:42 |
|
|
start [/forum/topic.php?fid=20&msg=39834529&tid=1398884]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
174ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
others: | 16ms |
total: | 290ms |
0 / 0 |