0

私は SQLite-Net データベースを使用しており、次のように比較して注文したいと考えています。

var value1 = 10;

var items = connection.Table<Item>.OrderBy(i => i.Field1 > value1).ToArray();

(注: value1 と Field1 は両方とも整数です)

これにより例外がスローされます。

System.NotSupportedException: Order By はサポートしていません: i => i.Field1 > value1

回避策として、このクエリを 2 つの部分に分割しました。

  1. Field1 が value1 より大きいアイテムを選択します
  2. Field1 が value1 以下のアイテムを選択します

そして、これらの結果が 1 つの結果に結合されます。

SQLite-Net を使用してこれを処理するより良い方法はありますか?

4

1 に答える 1

0

私の最初のアプローチは次のとおりです。

var value1 = 10;
var items = new List<Item>();
items.AddRange(connection.Table<Item>.Where(i => i.Field1 <= value1));
items.AddRange(connection.Table<Item>.Where(i => i.Field1 > value1));

しかし、最終的には単一のクエリに落ち着きました。

var value1 = 10;
var items = connection
              .Query<Item>(@"SELECT * 
                             FROM [Item] 
                             ORDER BY [Field1] > ? ASC", value1);
于 2013-08-15T21:24:29.100 に答える