「NServiceKit OrmLite/基本的な使い方」を編集中
ナビゲーションに移動
検索に移動
この編集を取り消せます。 下記の差分を確認して、本当に取り消していいか検証してください。よろしければ変更を保存して取り消しを完了してください。
最新版 | 編集中の文章 | ||
6行目: | 6行目: | ||
==SELECT== | ==SELECT== | ||
− | === | + | ===ExpressionVisitor<T>=== |
− | |||
− | |||
− | |||
− | |||
OrmLiteのSELECTメソッドはWHERE句に相当する。中身はLINQでも直書きSQLでも受け付ける。 | OrmLiteのSELECTメソッドはWHERE句に相当する。中身はLINQでも直書きSQLでも受け付ける。 | ||
ただSELECTメソッドは[[遅延評価]]ではなく、いきなり実行される。このためLINQを使った場合は、複数の条件式を徐々に組み立てたり、ORDER BY句によるソートなども一切出来ない。これでは使い物にならない。 | ただSELECTメソッドは[[遅延評価]]ではなく、いきなり実行される。このためLINQを使った場合は、複数の条件式を徐々に組み立てたり、ORDER BY句によるソートなども一切出来ない。これでは使い物にならない。 | ||
− | + | そのような用途のためにOrmLiteConfig.DialectProvider.ExpressionVisitor<T>が用意されている。 | |
− | + | ExpressionVisitorを用いてクエリを組み立て、最後にSELECTメソッドに食わせてやるという、いわゆるSqlBuilderである。 | |
− | + | ExpressionVisitorが吐き出すSQL文はデータベースに依存するためOrmLiteConfig.DialectProviderから生成するようになっている。一部のデータベースではExpressionVisitorが完璧に実装されていない開発途上のものも存在するので注意を要する。とりあえずMySQLのものはそこそこ動くようだ。 | |
− | |||
− | |||
<source lang="csharp"> | <source lang="csharp"> | ||
48行目: | 42行目: | ||
{{stub}} | {{stub}} | ||
− | |||
− |