I have the following linq query that takes a text field that can be Y, N or DBnull and fills a boolean value? parameter with 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
Problematic line
(i.targetmet == "Y") ? true : ((i.targetmet == "N") ? false : null)
After reading it, I found some documentation that says that the 2nd and 3rd arguments are inline, if they must be of the same type or be implicitly convertible to each other.
My question is: how do I get around this limitation to achieve the desired result?
I am relatively new to C #, so I donβt know all its features / capabilities yet.
c # ternary-operator nullable implicit-conversion
hermiod
source share