web-dev-qa-db-ja.com

2つのdouble値の間のLINQtoSQL値

LINQ to SQLを使用してデータベースにクエリを実行していますが、次のようなクエリがあります。

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

Where句にd.Proce >= minValued.Price =< maxValue(T-SQL BETWEEN句のような)が必要です。

これどうやってするの?

15
Alex

これはどう:

var result = from db.MyTable.Where(d => (double)d.Price >= minValue 
                                         && (double)d.Price <= maxValue)
23
cjk

完全を期すために。さまざまな入力に基づいてクエリを作成している場合は、連続する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();
7
Marc Gravell