我有一个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)
阅读了一些文档后,我发现内联if语句的第二个和第三个参数需要具有相同的类型或可以互相隐式转换。
我的问题是,如何绕过这个限制以实现我想要的结果?
我相对来说比较新手,对C#的所有怪癖/功能都不熟悉。