我有以下用'[未知]替換空白值的T-SQL。我如何在LINQ to EF查詢中實現這一點?如何將LINQ查詢結果中某個屬性的值替換爲另一個值?
select distinct case when CostCentre = '' then '[Unknown]' else CostCentre end as CostCentre
我有以下用'[未知]替換空白值的T-SQL。我如何在LINQ to EF查詢中實現這一點?如何將LINQ查詢結果中某個屬性的值替換爲另一個值?
select distinct case when CostCentre = '' then '[Unknown]' else CostCentre end as CostCentre
與投影:
var result = ctx.Source.Where(...).Select(i => CostCentre == "" ? "Unknown" : CostCentre);
應該給你一個字符串的IQuerialable。
我懷疑您的最佳解決方案是在您的選擇—中使用匿名類型,即您在一次性類的情況下創建自定義/計算屬性。選擇一個匿名類型允許你這樣做:
var items = from testItem in context.TestItems
select new { CostCentre = (testItem.CostCentre == "" ? "[Unknown]" : testItem.CostCentre) };
這將導致項目是一個自定義的IQueryable類型,其中每個項目都有CostCentre的一個屬性,類型爲字符串。如果你真正想要的是琴絃,你可以用一個IQueryable <串>結束了,如果你這樣簡化它:
var items = from testItem in context.TestItems
select testItem.CostCentre == "" ? "[Unknown]" : testItem.CostCentre;
我希望這有助於。如果你想要比一個物業更多的話,你會有更大的複雜性,但這是一個很好的起點。