我有以下linq查詢需要一個文本字段可能是Y,N或DBnull和填充布爾?參數可以是True,False或null,具體取決於字段的值。C#使用LINQ和可空布爾
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)
讀了後,我發現了一些文件,其規定,內聯的第二和第三個參數,如果需要是相同類型的或者是隱式轉換爲一個另一個。
我的問題是,我如何解決這個限制來實現我想要的結果?
我對C#比較陌生,所以不熟悉它的所有怪癖/功能。
這工作很好的動力。我現在遇到了一個問題,我試圖在下面的代碼中使用DisplayTemplate中的值: <%@ Control Language =「C#」Inherits =「System.Web.Mvc.ViewUserControl「%> <%:((布爾?)Model.Value == True)? 「kpi_tick.png」:「kpi_cross.png」%> 這個想法是,它會顯示一個真實的交叉圖像的勾號圖像,並且沒有未定義的圖像(還沒有完成該代碼的那一點) 。我收到錯誤「名稱」True「在當前上下文中不存在」 –
hermiod
2010-07-05 22:19:25
此標記看起來像ASP.NET,我最近一直在使用它。所以在黑暗中隨機拍攝:用真實代替True? – 2010-07-05 22:25:33
使用靜態方法bool Parse(string s)創建一個名爲BoolHelper的靜態類,該靜態方法包含Dynami的解決方案。然後使用它來簡化解析器的事情。 – 2010-07-05 22:35:17