メインメニューを開く

差分

NServiceKit OrmLite/基本的な使い方

323 バイト追加, 2015年10月19日 (月) 20:16
編集の要約なし
==SELECT==
===ExpressionVisitor一般的なSELECT===[[英語]]が読めなくても見ればわかる。*https://github.com/NServiceKit/NServiceKit.OrmLite/blob/master/README.md ===SqlExpressionVisitor<T>クラスを用いる===
OrmLiteのSELECTメソッドはWHERE句に相当する。中身はLINQでも直書きSQLでも受け付ける。
ただSELECTメソッドは[[遅延評価]]ではなく、いきなり実行される。このためLINQを使った場合は、複数の条件式を徐々に組み立てたり、ORDER BY句によるソートなども一切出来ない。これでは使い物にならない。
そのような用途のためにOrmLiteConfig.DialectProvider.ExpressionVisitorそのような用途のためにSqlExpressionVisitor<T>が用意されている。クラスが用意されている。ExpressionVisitorを用いてクエリを組み立て、最後にSELECTメソッドに食わせてやるという、いわゆるSqlBuilderである。SqlExpressionVisitorを用いてクエリを組み立て、最後にSELECTメソッドに食わせてやるという、いわゆるSqlBuilderである。
ExpressionVisitorが吐き出すSQL文はデータベースに依存するためOrmLiteConfigSqlExpressionVisitorが吐き出すSQL文はデータベースに依存するため、事前にOrmLiteConfig.DialectProviderから生成するようになっている。一部のデータベースではExpressionVisitorが完璧に実装されていない開発途上のものも存在するので注意を要する。とりあえずMySQLのものはそこそこ動くようだ。DialectProviderを適切に設定したうえで、ExpressionVisitor<T>()メソッドでインスタンスを取得するようになっている。 なお、一部のデータベースではSqlExpressionVisitorの派生クラスが完璧に実装されていない開発途上のものも存在するので注意を要する。とりあえずMySQLのものはそこそこ動くようだ。
<source lang="csharp">
{{stub}}
 
[[category:NServiceKit]]
匿名利用者