• Дубльований код. Чи завжди варто намагатися його позбутися

    І та, той тест який ви пропонуете це ще один кастомний вєлік, я вище писав функцію яка то робить з коробки, можна і стрінг свій зробити. Багато що можна, не розумію нахіба

  • Дубльований код. Чи завжди варто намагатися його позбутися

    Я не питав що таке ентіті, я спитав як ваш статік супер чекер чекне поле яке я додав в дто і забув змапати.
    Друге питання як ваш статік чекер вшарить з дбентіті що код скомпілится в коректний сіквел експрешн і виконается.

    Ніяк і ніяк, тому цей статік спосіб то велосипед саморобчик. А ті конскі експрешни без тестів нічо не гарантують.
    Ну кожен розважается по своему.
    Сілвер булета нема, треба викупати плюси обох кемпів, а для того треба розуміти що є в арсеналі і переваги і недоліки підходів, я не топлю за автомапер, но читати за статік чекі особисто мене веселить.

  • Дубльований код. Чи завжди варто намагатися його позбутися

    **

    рантайм експрешн

    ексепшн звісно.

  • Дубльований код. Чи завжди варто намагатися його позбутися

    І як ваш кастомний код і компілятор вбереже що ви додали поле в 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?