我正在使用LINQ to SQL来查询我的数据库,我有一个非常类似的查询:
var result = from db.MyTable.Where(d => (double)d.Price >= minValue)
我需要where子句有一个d.Proce >= minValue
和d.Price =< maxValue
(就像一个T-SQL BETWEEN
子句)。
我该怎么做?
答案 0 :(得分:23)
这个怎么样:
var result = from db.MyTable.Where(d => (double)d.Price >= minValue
&& (double)d.Price <= maxValue)
答案 1 :(得分:7)
只是为了完整;如果您根据不同的输入构建查询,则可以使用连续的Where
调用来构建查询:
IQueryable<SomeType> query = db.MyTable;
if(minValue != null) // a Nullable<double>
{
var actualMin = minValue.Value;
query = query.Where(d => (double) d.Price >= actualMin);
}
if(maxValue != null) // a Nullable<double>
{
var actualMax = maxValue.Value;
query = query.Where(d => (double) d.Price <= actualMax);
}
// keep working with "query", for example, query.ToList();