我想知道是否可以选择我想这取决于其他列的值进行比较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