Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
asp.net репо
|
|||
|---|---|---|---|
|
#18+
user7320user7320пропущено... Лучше так сказать: я хочу работать со всеми источниками данных, как с EF. Что мешает мне это сделать? Сложность реализации или что? Вот вы говорите "представь, что данные приходят не из БД, а из веб-сервиса". А я хочу с этим веб-сервисом работать как с EF - ЛИНКи там всякие, цепочки методов, лямбды. Что для этого надо сделать?Книжки почитать Хочешь использовать в качестве Criteria выражение как в EF - используй! Какие проблемы? EF по твоему чудесно как-то устроен? Думаешь он каким-то мистическим способом преобразует "ЛИНКи там всякие, цепочки методов, лямбды" в запрос к БД? Нет! Там тупо код написан. Используй в своей реализации подобный подход. Почитай про IQueryProvider. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2014, 14:58 |
|
||
|
asp.net репо
|
|||
|---|---|---|---|
|
#18+
user7320user7320Короче, я хочу работать с репозиторием, как с EF Лучше так сказать: я хочу работать со всеми источниками данных, как с EF. Что мешает мне это сделать? Сложность реализации или что? если ты хочешь работать с источниками данных - тебе для начала нужна реализация этого источника. метод типа IList<Users> GetUsers(). вот и будет реализация твоего источника. где он реализован и как - работа для источника. и чтобы web сервис загружал объекты со всеми связями - эту работу надо провести внутри источника. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2014, 15:02 |
|
||
|
asp.net репо
|
|||
|---|---|---|---|
|
#18+
monstrUuser7320, нет, ну тут ты разделяй - репозиторий и QueryObject. когда ты пользуешься репозиторием, использовать QueryObject нет большой необходимости. фактически (если следовать концепции автора), то он в итоге хорошо подходит для реализации запросов вида select * from myTable where id=123 или select * from myTable where id in (1,2,3) [может быть exists] (последнее годиться если производительность запроса не страдает) если у тебя более сложные запросы - надо смотреть по месту. вполне возможно прийдешь к QueryObject. например методы типа FindUserByCity() я бы реализовывал в отдельном слое. вопрос - использовать репозиторий или QueryObject для загрузки данных решал бы исходя из того, укладывается запрос с поиском в конструкцию типа select * from myTable where id=123. если да - реализовал бы при помощи репозитория. если нет - использовал QueryObject. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. вот интерфейс репозитория, который я применил в проекте. при реализации работать так же удобно, как и в EF. тут только запросы для отбора данных и CRUD операций. Эта штука работает с корнями аггрегации? Если надо вставить не только сущность, но и связь этой сущности с другими сощностями (заполнить таблицы связей)? monstrUuser7320пропущено... Лучше так сказать: я хочу работать со всеми источниками данных, как с EF. Что мешает мне это сделать? Сложность реализации или что? если ты хочешь работать с источниками данных - тебе для начала нужна реализация этого источника. метод типа IList<Users> GetUsers(). вот и будет реализация твоего источника. где он реализован и как - работа для источника. и чтобы web сервис загружал объекты со всеми связями - эту работу надо провести внутри источника. Т. е. написать провайдер данных, который бы позволял отправлять веб-сервису всякие ЛИНКи и лямбды, которые этот веб-сервис бы умел "парсить" и превращать в запрос к БД, а потом возвращать обратно готовый результат запроса в виде объекта со всеми связями (корень аггрегации)? skyANAuser7320пропущено... Вот вы говорите "представь, что данные приходят не из БД, а из веб-сервиса". А я хочу с этим веб-сервисом работать как с EF - ЛИНКи там всякие, цепочки методов, лямбды. Что для этого надо сделать?Книжки почитать Хочешь использовать в качестве Criteria выражение как в EF - используй! Какие проблемы? EF по твоему чудесно как-то устроен? Думаешь он каким-то мистическим способом преобразует "ЛИНКи там всякие, цепочки методов, лямбды" в запрос к БД? Нет! Там тупо код написан. Используй в своей реализации подобный подход. Почитай про IQueryProvider. Вот-вот, "там кода написан". Причём кода там написано может даже поболее, чем в "репозитории с двумя сотнями методов". Нужно свои провайдеры писать. А в EF для меня дяди написали и бесплатно дали использовать - красота! А у вас, кстати, кретирий тоже из себя представляет некий Expression, как у Монстрю ? По идее, если писать в веб-сервисе не FindUserById(int userId), а FindUser(Expression predicate), то можно всякие ЛИНКи и лямбды прямо в параметр метода сервиса отправлять. Вот тут - чего внутри IPersonCriteria сидит? Методы, принимающие Expression? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2014, 09:12 |
|
||
|
asp.net репо
|
|||
|---|---|---|---|
|
#18+
user7320, что то у тебя мысли разбегаются и что-то конкретного посоветовать трудно. конкретно сейчас ты какую задачу решаешь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2014, 11:00 |
|
||
|
asp.net репо
|
|||
|---|---|---|---|
|
#18+
monstrUuser7320, что то у тебя мысли разбегаются и что-то конкретного посоветовать трудно. конкретно сейчас ты какую задачу решаешь? Ну, сейчас я не решаю задачу с репозиторием. Я решил, что пока мне не нужно с нескольких источников получать, а только с БД - использую тупо EF. Ну а в будущем надо что-то выбрать будет. Вот и узнаЮ здесь. Потому что репозиторий - он не один. У каждого свой вид на него. Вот, в частности, хочу узнать у Скайаны, что скрывается под IPersonCriteria здесь . Потому что у вас подход с Expression, а у Скайаны - свой какой-то. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2014, 11:11 |
|
||
|
asp.net репо
|
|||
|---|---|---|---|
|
#18+
user7320, мне кажется он применил паттерн Спецификация. ну тот набор Expressions лямбда выражений тоже наверно можно считать примитивной реализации паттерна Спецификация - просто в случае Expressions условие отбора указывается при помощи реализации лямбда выражения, а у него условие отбора указывается при помощи реализации интерфейса ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2014, 11:21 |
|
||
|
asp.net репо
|
|||
|---|---|---|---|
|
#18+
monstrUuser7320, мне кажется он применил паттерн Спецификация. ну тот набор Expressions лямбда выражений тоже наверно можно считать примитивной реализации паттерна Спецификация - просто в случае Expressions условие отбора указывается при помощи реализации лямбда выражения, а у него условие отбора указывается при помощи реализации интерфейса Ваш подход ещё тем отличается, что Expression можно сформировать в одном месте и передать как объект в другое место (с клиента на сервер, например). А можно ли так сделать с конкретной реализацией интерфейса? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2014, 11:23 |
|
||
|
asp.net репо
|
|||
|---|---|---|---|
|
#18+
user7320, ну в чем проблема - ты указывай во входном параметре функции переменную типа интерфейс, а в конкретном вызове функции указывай уже нужную тебе реализацию интерфейса - будет понижение связности между компонентами системы. какую конкретно реализацию нужно передать - решать до вызова функции. интерфейсы в принципе для таких вещей и нужны ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2014, 11:35 |
|
||
|
asp.net репо
|
|||
|---|---|---|---|
|
#18+
user7320 Ваш подход ещё тем отличается, что Expression можно сформировать в одном месте и передать как объект в другое место (с клиента на сервер, например). А можно ли так сделать с конкретной реализацией интерфейса? ...а зачем выражение EF/Linq формировать на клиенте? .. Клиент - это же пульт с кнопками и переключателями ... Набор состояний контролов можно передать или в коллекции, или как oData делает, да хоть собственный параметр склеить строчный, а метод потом пусть разберет и распихивает по методам уже в веб-сервисе, вызывая IQueryable, IEnumerable, Expression AsDTO ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2014, 15:58 |
|
||
|
asp.net репо
|
|||
|---|---|---|---|
|
#18+
Развели тут :) В чем отличие фабики для квериобжектов и репозитоьрия? Фабрика по сути и есть год объект ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2014, 02:08 |
|
||
|
asp.net репо
|
|||
|---|---|---|---|
|
#18+
Gena_16032014Развели тут :) В чем отличие фабики для квериобжектов и репозитоьрия? Фабрика по сути и есть год объект есть разница. репо выдаёт один и тот же тип объекта, но с разными данными. фабрика выдаёт разные объекты с одним интерфейсом. репозиторий: человек1: вася, человек2: петя, человек3: иван фабрика: руки-ноги1: человек, руки-ноги2: франкенштейн, руки-ноги3: халк ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2014, 13:48 |
|
||
|
|

start [/forum/topic.php?fid=18&msg=38592695&tid=1357527]: |
0ms |
get settings: |
6ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
51ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 246ms |
| total: | 376ms |

| 0 / 0 |
