Я не питав що таке ентіті, я спитав як ваш статік супер чекер чекне поле яке я додав в дто і забув змапати.
Друге питання як ваш статік чекер вшарить з дбентіті що код скомпілится в коректний сіквел експрешн і виконается.
Ніяк і ніяк, тому цей статік спосіб то велосипед саморобчик. А ті конскі експрешни без тестів нічо не гарантують.
Ну кожен розважается по своему.
Сілвер булета нема, треба викупати плюси обох кемпів, а для того треба розуміти що є в арсеналі і переваги і недоліки підходів, я не топлю за автомапер, но читати за статік чекі особисто мене веселить.
**
рантайм експрешн
ексепшн звісно.
І як ваш кастомний код і компілятор вбереже що ви додали поле в Entity а в Дто забули?
А як він вбереже що поле не мапится вашим експрешном кастомним і ви получите рантайм експрешн тому що сіквел не уміє мапити в <’T> ?
Що компілятор за вас робить? Провіряє що тип e.a = dto.b
по типах сумісне ? Все?
Це 1 тест чекне. при чому для всіх типів. автоматично.
При чім покаже ще і які проперті ви забули.
Експрешни кастомні для проекціі? Навіщо?
Я хочу в декларативній манері описати ЯК мапити. а не в імперативній описувати a = a , b=b
і коли додастся поле ходити по вашим 333 леєрам і дивитись як то присобачити туда ще пропертю C.
ПроджектТу придуманий не просто так. і ним треба уміть користуватись так само як і
AssertConfigurationIsValid
AssertConfigurationIsValid
Як і не гарантує ваш кастомний велік, що ви не забули а змапати в б, для цього є інтеграційні тести, нашо писати цей кастомний експрешн ? Пальці щоб розмяти отими генеріками і потім очі садити коли то читаеш? Коду менше? ПроджектТу підставити? Накастомити своіх веліків бо так <простіше і коду менше> класіка.
1 Тест.
робиш й все.
Не забуваєш юзати Source/Destination
коли в профілі автомапера створюеш мепінги.
AutoMapper provides configuration testing in the form of the AssertConfigurationIsValid method. Suppose we have slightly misconfigured our source and destination types:
Нащо тут чат гпт не знаю. ловится усе.
ще й покаже які проперті ти забув.
При тому що кастомні як раз таки велосипеди (оці статік компайл тайм)
не побачать кейсу коли я додав поле в ДТО але забув його змапити з ентіті.
Assert Configuration Is Valid.
все. 1 тест. каверить всі кейси,
ProjectTo також загугліть. будете його робити власноруч для ваших entity?
І та, той тест який ви пропонуете це ще один кастомний вєлік, я вище писав функцію яка то робить з коробки, можна і стрінг свій зробити. Багато що можна, не розумію нахіба