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)
只是为了完整; 如果要基于不同的输入构建查询,可以使用连续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)