|
EF и DAL?
|
|||
---|---|---|---|
#18+
Доброе всем утро, возникли у меня вопросы. Работаю с EF и коллега с которым работаем над проектом говорит, что надо в проект запилить какой-то слой доступа к данным(как я понимаю DAL). Я все никак раздуплить не могу какой в этом смысл, вот есть у меня модель, несколько примеров классов: Код: 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.
После чего в контроллере я на прямую могу обращаться к модели и вытягивать данные из базы. Допустим в представление я хочу передавать какие-то из этих данных, но мне не надо, чтобы на клиент уходил правильный вариант ответа на вопрос(AnswerBank_isTrue) и системные поля(System_insertDT и System_insertAccount), а только сами ответы на вопрос, я для этого создаю отдельный класс: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9.
С помощью метода расширений реализую объекты этого класса Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
И в контроллере передаю их представлению. НУ и так далее, то есть, если мне надо передать на клиент, только необходимые данные из класса модели, мне приходиться создавать для этого отдельный класс, из-за чего их количество увеличивается. Кстати на сколько правильно это? Могу ли я на прямую работать с моделью без создания этих промежуточных классов, допустим где возможно пользоваться анонимными классами? Так как я по большому счету самоучка и высшее образование у меня не программиста, изучаю все по мануалам, книгам, видео-урокам. Там они, вообще, модель использую прямо в контроллере, пример: Код: c# 1. 2. 3. 4. 5.
В принципе и я так делаю, поэтому коллега говорит, что так не правильно, и должен быть какой-то промежуточный слой, доступа к данным, как я себе это представляю: Код: c# 1. 2. 3. 4. 5.
Но раздуплить, почему нельзя использовать прямое обращение к классам модели в контроллер у меня так и не получается, ведь по сути все работает нормально. Где ж я не прав? Кстати сталкивался с понятием Репозитория, что это, EF что ли не является косвенным репозиторием?? Как же правильно реализовать этот DAL и нужен ли он, вообще, в моем случае?? Может быть можно реализовать что-то похожее на DAL? Буду признателен, хоть за какую то информацию, всем хорошего дня. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2014, 10:17 |
|
EF и DAL?
|
|||
---|---|---|---|
#18+
rpe4aи я так делаю , поэтому коллега говорит , что так не правильно Так может он сделает , как правильно, а вы посмотрите? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2014, 10:39 |
|
EF и DAL?
|
|||
---|---|---|---|
#18+
Arm79rpe4aи я так делаю , поэтому коллега говорит , что так не правильно Так может он сделает , как правильно, а вы посмотрите? Ну он другими деталями проекта занимается(представлением + он замутил туда AngularJS, и сейчас я даже не представляю, что это за проект, подход MVC очень размыт=)) Хотелось бы услышать как у вас реализуется этот DAL или его подобие, и есть ли он у вас вообще... ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2014, 10:45 |
|
EF и DAL?
|
|||
---|---|---|---|
#18+
И какой будет от него прок? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2014, 10:46 |
|
EF и DAL?
|
|||
---|---|---|---|
#18+
Ответы на большинство твоих вопросов есть в этой ветке ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2014, 10:51 |
|
EF и DAL?
|
|||
---|---|---|---|
#18+
rpe4aНу он другими деталями проекта занимается Критиковать каждый горазд. У вас работает? Не трогайте. Или чистите код, если хватает времени. Рефакторинг называется. В принципе контекст EF можно трактовать как DAL ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2014, 10:54 |
|
EF и DAL?
|
|||
---|---|---|---|
#18+
Shocker.ProОтветы на большинство твоих вопросов есть в этой ветке Спасибо, сейчас почитаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2014, 10:58 |
|
EF и DAL?
|
|||
---|---|---|---|
#18+
Arm79rpe4aНу он другими деталями проекта занимается Критиковать каждый горазд. У вас работает? Не трогайте. Или чистите код, если хватает времени. Рефакторинг называется. В принципе контекст EF можно трактовать как DAL Хмм... интересно, а репозиторий, что тогда? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2014, 10:59 |
|
EF и DAL?
|
|||
---|---|---|---|
#18+
rpe4aArm79пропущено... Критиковать каждый горазд. У вас работает? Не трогайте. Или чистите код, если хватает времени. Рефакторинг называется. В принципе контекст EF можно трактовать как DAL Хмм... интересно, а репозиторий, что тогда?Что, опять? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2014, 11:12 |
|
EF и DAL?
|
|||
---|---|---|---|
#18+
rpe4a, воспользуйтесь поиском по форуму. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2014, 11:14 |
|
EF и DAL?
|
|||
---|---|---|---|
#18+
skyANArpe4a, воспользуйтесь поиском по форуму. Опять )) Это вы четко подметили. Дак вот сижу как раз и читаю, просто не знаю с чего начать, тут куча всего. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2014, 11:17 |
|
EF и DAL?
|
|||
---|---|---|---|
#18+
rpe4a, начинать нужно с анализа своего проекта, какте планы по его развитию и вопроса: а понадобится-ли DAL и репозиторий вообще. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2014, 12:08 |
|
EF и DAL?
|
|||
---|---|---|---|
#18+
rpe4aпросто не знаю с чего начать.Сначала сформулируй список имеющихся проблем. Потом ищи пути их решения. Если проблем нет, то и делать ничего не надо. Отсутствие слоя DAL само по себе вряд ли можно назвать проблемой. А товарищу своему скажи, что, как было замечено выше, EF-ный DbContext/ObjectContext при желании можно рассматривать как DAL. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2014, 12:10 |
|
EF и DAL?
|
|||
---|---|---|---|
#18+
Алексей Кrpe4aпросто не знаю с чего начать.Сначала сформулируй список имеющихся проблем. Потом ищи пути их решения. Если проблем нет, то и делать ничего не надо. Отсутствие слоя DAL само по себе вряд ли можно назвать проблемой. А товарищу своему скажи, что, как было замечено выше, EF-ный DbContext/ObjectContext при желании можно рассматривать как DAL. Передам, спасибо. Но вот интересно, то есть ничего страшного не произойдет, если я буду какую-то логику доступа к данным буду запихивать/использовать в контроллере? К примеру как я уже описывал: Код: c# 1. 2. 3. 4. 5.
Понятно, что операции сохранения и обновления или удаления данных в БД, скорей всего надо делать в отдельных методах. А в контроллере только их вызывать? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2014, 12:39 |
|
EF и DAL?
|
|||
---|---|---|---|
#18+
rpe4aНо вот интересно, то есть ничего страшного не произойдет, если я буду какую-то логику доступа к данным буду запихивать/использовать в контроллере?Если логика простая, возможно, ничего плохого в этом нет. Всё зависит от задачи. Если в дальнейшем возникнут проблемы, всегда можно будет произвести выделение класса с гордым именем "репозитарий". :-) Но в общем случае располагать прикладную логику в контроллере не рекомендуется. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2014, 12:45 |
|
EF и DAL?
|
|||
---|---|---|---|
#18+
rpe4aДоброе всем утро, возникли у меня вопросы. Работаю с EF и коллега с которым работаем над проектом говорит, что надо в проект запилить какой-то слой доступа к данным(как я понимаю DAL). Я все никак раздуплить не могу какой в этом смысл Никакого, у тебя и так нормально написано (почти) 1) GetAnswerViewModels переделай в Select к IQueryable 2) Добавь пейджинг, ибо записей может оказаться много Всякие DALы и репозитории не нужны. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2014, 12:56 |
|
EF и DAL?
|
|||
---|---|---|---|
#18+
gandjustasrpe4aДоброе всем утро, возникли у меня вопросы. Работаю с EF и коллега с которым работаем над проектом говорит, что надо в проект запилить какой-то слой доступа к данным(как я понимаю DAL). Я все никак раздуплить не могу какой в этом смысл Никакого, у тебя и так нормально написано (почти) 1) GetAnswerViewModels переделай в Select к IQueryable 2) Добавь пейджинг, ибо записей может оказаться много Всякие DALы и репозитории не нужны.Ну это только время покажет ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2014, 13:06 |
|
EF и DAL?
|
|||
---|---|---|---|
#18+
skyANA, Когда время покажет ТС и сам догадается. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2014, 13:23 |
|
EF и DAL?
|
|||
---|---|---|---|
#18+
gandjustasskyANA, Когда время покажет ТС и сам догадается.Ну или старший коллега найдёт таки время и сам расскажет, зачем в проекте понадобился DAL. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2014, 13:35 |
|
EF и DAL?
|
|||
---|---|---|---|
#18+
skyANAgandjustasskyANA, Когда время покажет ТС и сам догадается.Ну или старший коллега найдёт таки время и сам расскажет, зачем в проекте понадобился DAL. 1) Старший? Скорее наоборот. 2) Не расскажет, ибо сам не понимает. Как и многие тут присутствующие. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2014, 13:58 |
|
EF и DAL?
|
|||
---|---|---|---|
#18+
gandjustasskyANAпропущено... Ну или старший коллега найдёт таки время и сам расскажет, зачем в проекте понадобился DAL. 1) Старший? Скорее наоборот. 2) Не расскажет, ибо сам не понимает. Как и многие тут присутствующие.Троллить-то зачем? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2014, 14:11 |
|
EF и DAL?
|
|||
---|---|---|---|
#18+
gandjustas, Это не на ваши статьи на Хабре я наткнулся? Про 7 мифов и так далее? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2014, 14:17 |
|
EF и DAL?
|
|||
---|---|---|---|
#18+
Arm79gandjustas, Это не на ваши статьи на Хабре я наткнулся? Про 7 мифов и так далее? Мои ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2014, 14:35 |
|
EF и DAL?
|
|||
---|---|---|---|
#18+
gandjustas2) Не расскажет, ибо сам не понимает. Как и многие тут присутствующие .Например? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2014, 14:52 |
|
|
start [/forum/topic.php?fid=17&fpage=18&tid=1349720]: |
0ms |
get settings: |
11ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
58ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
72ms |
get tp. blocked users: |
2ms |
others: | 289ms |
total: | 463ms |
0 / 0 |