I have the below linq query which takes a text field which may be Y, N or DBnull and populates a boolean? parameter with either True, False or null depending on the value of the field.
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
The problematic line is
(i.targetmet == "Y") ? true : ((i.targetmet == "N") ? false : null)
After reading up I found some documentation which states that the 2nd and 3rd arguments of the inline if need to be of the same type or be implicitly convertible to one another.
My question is, how do I get around this limitation to achieve my desired result?
I am relatively new to C# so am not familiar with all its quirks/capabilities yet.