LINQ to SQL值BETWEEN两个double值

Ale*_*lex 15 c# linq linq-to-sql

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

var result = from db.MyTable.Where(d => (double)d.Price >= minValue)
Run Code Online (Sandbox Code Playgroud)

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

我怎样才能做到这一点?

cjk*_*cjk 23

这个怎么样:

var result = from db.MyTable.Where(d => (double)d.Price >= minValue 
                                         && (double)d.Price <= maxValue)
Run Code Online (Sandbox Code Playgroud)


Mar*_*ell 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();
Run Code Online (Sandbox Code Playgroud)