Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Dapper - как изменить результаты при мапинге?
|
|||
|---|---|---|---|
|
#18+
Всем Привет! Использую dapper, подскажи пжлста как можно изменить/дополнить результаты выбрки при мапинге на модель? Стандартно: Код: c# 1. но что если мне нужно еще динамично на лету сгенерировать поле Link например? Rez = db.Query<calendarevents>("SELECT top 12 Id, Title, Description, Link="http:\\site.\home\event\"+Id").ToList(); В EF бинд писался вручную, но можно было любые манипуляции с данными выборки делать, а тут как то можно правильно, кроме такого велосипеда: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. то есть колонки Link нет в БД, а мне она нужна, и часто бывает нужно изменить результат выборки и подавать измененный. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2016, 10:14 |
|
||
|
Dapper - как изменить результаты при мапинге?
|
|||
|---|---|---|---|
|
#18+
Sputnick, а ты тут разделяй - доменная модель или view модель. dapper тебе возвращает объект - аналог записи в таблице. лучше его воспринимать как доменный объект. а если нужно тебе ссылку формировать - то это уже начинается логика презентации модели и ее лучше формировать в viewmodel. еще лучше логику формирования ссылки вынести в View . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2016, 10:54 |
|
||
|
Dapper - как изменить результаты при мапинге?
|
|||
|---|---|---|---|
|
#18+
monstrUSputnick, а ты тут разделяй - доменная модель или view модель. dapper тебе возвращает объект - аналог записи в таблице. лучше его воспринимать как доменный объект. а если нужно тебе ссылку формировать - то это уже начинается логика презентации модели и ее лучше формировать в viewmodel. еще лучше логику формирования ссылки вынести в View . да, EventsForMain это доменная модель. Ну ссылка это один из вариантов, хотелось бы чтобы на контроллер готовая модель шла, подготовленная в бизнес слое, а не готовить(приводить) данные к нужному виду в разных местах (бизнес слой и непосредственно сайт) Вот подсказали такой вариант: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. еще раз ссылка это просто пример и не самый лучший, я задал вопрос в принципе о вариантах реализации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2016, 11:03 |
|
||
|
Dapper - как изменить результаты при мапинге?
|
|||
|---|---|---|---|
|
#18+
Sputnick, Так я и пишу, что в базе у тебя ссылка не храниться - у тебя храниться ссылка на event. сейчас тебе понадобилось правило сформировать ссылку вида http:\\site.\home\event\\+ id event и отобразить на странице. а если потом у тебя будет правило сформировать ссылку для sms http:\\mobile-site.\home\event\\ ? будешь для dapper а новый класс делать? или третий вариант использования eventId случиться? так что размести правило формирования в View и не парь людям мозг. :) я подозреваю что такая ситуация у тебя возникла из-за того, что ты объект для Dappera используешь в Veiw. это плохая архитектура. по большому счету domain model != viewmodel и view должно работать только с объектами viewmodel, а у тебя это не так ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2016, 11:26 |
|
||
|
Dapper - как изменить результаты при мапинге?
|
|||
|---|---|---|---|
|
#18+
monstrUSputnick, ты объект для Dappera используешь в Veiw. это плохая архитектура. по большому счету domain model != viewmodel и view должно работать только с объектами viewmodel, а у тебя это не так да, до этого так и было, похоже настал момент юзать модели представления. Спасибо за внятное объяснение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2016, 11:37 |
|
||
|
Dapper - как изменить результаты при мапинге?
|
|||
|---|---|---|---|
|
#18+
Sputnick, вот :) объект viewmodel по свойствам будет много повторять свойства domain модели - тут можно воспользоваться автомепперами типа automapper emitmapper. последний правда версию framework выше чем 3.5 не имеет, то не очень хорошо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2016, 12:33 |
|
||
|
|

start [/forum/topic.php?fid=18&fpage=39&tid=1355960]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
23ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
| others: | 220ms |
| total: | 342ms |

| 0 / 0 |
