У меня есть следующий запрос linq, который принимает текстовое поле, которое может быть Y, N или DBnull и заполняет логическое значение? параметр со значением True, False или null в зависимости от значения поля.
var dset = from i in tbdc.Talkbacks
where i.talkback_id == id
select new Talkback(
i.talkback_id, i.acad_period, i.reference,
i.staff_member, i.date_received, i.no_talkers,
i.gender_id, i.names, i.type_id,
i.method_id, i.area_id, i.site_id,
i.category_id, i.date_closed, i.expenddate,
i.acknowledgementtarget,
(i.targetmet == "Y") ? true :
((i.targetmet == "N") ? false : null),
(i.acknowledgementtargetmet != "N") ? true : false
Проблемная строка -
(i.targetmet == "Y") ? true : ((i.targetmet == "N") ? false : null)
После прочтения я обнаружил некоторую документацию, в которой говорится, что 2-й и 3-й аргументы inline, если нужно, должны быть одного типа или неявно преобразовываться друг в друга.
Мой вопрос: как мне обойти это ограничение, чтобы достичь желаемого результата?
Я относительно новичок в C #, поэтому еще не знаком со всеми его особенностями / возможностями.