我想知道是否可以選擇我想這取決於其他列的值進行比較datetime值哪一列,例如:根據列的值更改選擇條件
我的模型看起來是這樣的:
public class ServicosFinanceiro
{
[Key]
public int IdservFin { get; set; }
public int? ParcelaAtual { get; set; }
public DateTime? DataVencto1 { get; set; }
public DateTime? DataVencto2 { get; set; }
public DateTime? DataVencto3 { get; set; }
public DateTime? DataVencto4 { get; set; }
}
我想根據ParcelaAtual值,使用linq to sql選擇DataVencto1或DataVencto2或DataVencto3或DataVencto4的日期時間範圍內的行。
如果ParcelaAtual = 1,我需要比較DataVencto1列的日期。 如果ParcelaAtual = 2我需要比較DataVencto2列的日期等。
當前我選擇所有行並執行foreach檢查ParcelaAtual值是什麼,根據它我選擇比較日期各自的DataVencto列的範圍並將其添加到另一個模型對象。
是否有可能在使用linq to sql的select語句上實現該功能?
我正在嘗試使用CASE,但爲什麼這種方式更好,然後使用CASE?謝謝 –
即使你的索引超過了'DataVencto *'列,'CASE'語句也不會使用它們。使用'OR'語句有時會更好(我有時候會說,因爲SQL-Server並不是很好地優化'OR'謂詞 - 它最終也可以做一個完整的掃描)。 – rsenna