「NServiceKit OrmLite/基本的な使い方」を編集中

ナビゲーションに移動 検索に移動

警告: ログインしていません。編集を行うと、あなたの IP アドレスが公開されます。ログインまたはアカウントを作成すれば、あなたの編集はその利用者名とともに表示されるほか、その他の利点もあります。

この編集を取り消せます。 下記の差分を確認して、本当に取り消していいか検証してください。よろしければ変更を保存して取り消しを完了してください。

最新版 編集中の文章
4行目: 4行目:
 
==注意==
 
==注意==
 
これは[[ServiceStack OrmLite]]ではなく[[NServiceKit OrmLite]]のお話です。
 
これは[[ServiceStack OrmLite]]ではなく[[NServiceKit OrmLite]]のお話です。
 
==SELECT==
 
===一般的なSELECT===
 
[[英語]]が読めなくても見ればわかる。
 
*https://github.com/NServiceKit/NServiceKit.OrmLite/blob/master/README.md
 
 
===SqlExpressionVisitor<T>クラスを用いる===
 
OrmLiteのSELECTメソッドはWHERE句に相当する。中身はLINQでも直書きSQLでも受け付ける。
 
 
ただSELECTメソッドは[[遅延評価]]ではなく、いきなり実行される。このためLINQを使った場合は、複数の条件式を徐々に組み立てたり、ORDER BY句によるソートなども一切出来ない。これでは使い物にならない。
 
 
そのような用途のためにSqlExpressionVisitor<T>クラスが用意されている。
 
SqlExpressionVisitorを用いてクエリを組み立て、最後にSELECTメソッドに食わせてやるという、いわゆるSqlBuilderである。
 
 
SqlExpressionVisitorが吐き出すSQL文はデータベースに依存するため、事前にOrmLiteConfig.DialectProviderを適切に設定したうえで、ExpressionVisitor<T>()メソッドでインスタンスを取得するようになっている。
 
 
なお、一部のデータベースではSqlExpressionVisitorの派生クラスが完璧に実装されていない開発途上のものも存在するので注意を要する。とりあえずMySQLのものはそこそこ動くようだ。
 
 
<source lang="csharp">
 
            OrmLiteConfig.DialectProvider = MySqlDialectProvider.Instance;
 
 
            var cs = ConfigurationManager.ConnectionStrings["MySQL"].ConnectionString;
 
            var db = cs.OpenDbConnection();
 
 
            db.CreateTable<User>(overwrite: true);
 
            db.Insert<User>(new User { Id = 1, Name = "上級国民", });
 
            db.Insert<User>(new User { Id = 2, Name = "一般国民", });
 
            db.Insert<User>(new User { Id = 3, Name = "その他", });
 
 
            var ev = OrmLiteConfig.DialectProvider.ExpressionVisitor<User>();
 
            ev.Where(x => x.Id == 2);
 
            ev.Or(x => x.Id == 3);
 
 
            var rows = db.Select(ev);
 
</source>
 
  
 
==関連項目==
 
==関連項目==
48行目: 13行目:
  
 
{{stub}}
 
{{stub}}
 
[[category:NServiceKit]]
 

MonoBookへの投稿はすべて、他の投稿者によって編集、変更、除去される場合があります。 自分が書いたものが他の人に容赦なく編集されるのを望まない場合は、ここに投稿しないでください。
また、投稿するのは、自分で書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください(詳細はMonoBook:著作権を参照)。 著作権保護されている作品は、許諾なしに投稿しないでください!

このページを編集するには、下記の確認用の質問に回答してください (詳細):

取り消し 編集の仕方 (新しいウィンドウで開きます)

このページで使用されているテンプレート:

このページは 1 個の隠しカテゴリに属しています: