LINQ to SQL值BETWEEN两个double值

时间:2009-09-12 11:17:12

标签: c# linq linq-to-sql

我正在使用LINQ to SQL来查询我的数据库,我有一个非常类似的查询:

var result = from db.MyTable.Where(d => (double)d.Price >= minValue)

我需要where子句有一个d.Proce >= minValued.Price =< maxValue(就像一个T-SQL BETWEEN子句)。

我该怎么做?

2 个答案:

答案 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();