我試圖編寫一個使用if語句的linq查詢。在Linq查詢中使用條件if語句
在下面的代碼我在尋找
n.SAU_ID = sau.SAUID其中
ReportingPeriod列的比賽中包含 「OCT1」 然後 FiscalYear - aprYearDiff = sau.SAUYearCode。
否則
FiscalYear - octYearDiff = sau.SAUYearCode。
我的代碼只給出SAUID和「Oct1」的匹配。
需要什麼代碼來實現這些語句?
int FiscalYear = 2014;
List<String> addtowns = new List<string>();
List<Stage_Reorg> reorg = _entities.Stage_Reorg.ToList();
int aprYearDiff = 2;
int octYearDiff = 1;
foreach (var sau in reorg)
{
addtowns.AddRange(_entities.Stage_EPSSubsidySADCSDTown
.Where(n => n.SAU_ID == sau.SAUID
&& (n.ReportingPeriod == "Oct1"
? (FiscalYear - aprYearDiff) == sau.SAUYearCode
: (FiscalYear - octYearDiff) == sau.SAUYearCode))
.Select(n => n.TownCode));
}
您可以修復該語法,但我認爲它不適用於EF。 – 2014-08-29 18:24:05
'.where(a => {/ * some code */return/* some bool value * /})' – RadioSpace 2014-08-29 18:26:19
@EugenePodskal這實際上在編輯之前更容易閱讀。 – DCShannon 2014-08-29 18:32:33