0

Windows 8 ストア アプリケーションがあり、データベースに SQLite の最新バージョンを使用しています。

だから私はデータベースからいくつかのレコードを返したいと思っていて、それらを複数の列で並べたいと思っています。しかし、SQLite には ThenBy ステートメントがないようです。したがって、私のLINQステートメントは次のとおりです。

from i in connection.Table<MyTable>()
where i.Type == type 
orderby i.Usage_Counter
// ThenBy i.ID
select i);

では、別の LINQ ステートメントを実行せずに、SQLite で複数の列で並べ替えるにはどうすればよいでしょうか?

4

2 に答える 2

2

実装されていないため、SQL-Net の LINQ 実装を使用して複数の列で並べ替えることはできませんThenBy

Queryでメソッドを使用して、これを回避できますconnection

var sorted =
    connection.Query<MyTable>(
    "select * from MyTable where Type = ? order by Usage_Counter, ID",
    // you may have to cast to int here...
    type);

別のオプションは、上記の結果を使用して呼び出すToList()ことです。その後、結果を複数の値で並べ替えることができます。

var tables =
from i in connection.Table<MyTable>()
where i.Type == type 
select i;

var tmp = tables.ToList();

var sorted =
from i in tmp
orderby i.Usage_Counter, i.ID
select i;
于 2013-10-27T03:49:27.640 に答える
0

クエリ構文を使用する場合は、並べ替えるフィールドのカンマ区切りのリストを指定するだけです。

from i in connection.Table<MyTable>()
where i.Type == type 
orderby i.Usage_Counter, i.ID
select i

メソッド構文では、ThenBy を使用できます。

connection.Table<MyTable>()
          .Where(i => i.Type == type)
          .OrderBy(i => i.Usage_Counter)
          .ThenBy(i => i.ID)

編集- ここで申し訳ありませんが、Windows 8 ストア アプリで Entity Framework を使用できないようです: EntityFramework は Windows 8 ストア アプリで使用できますか?

于 2013-10-24T12:57:08.427 に答える