sQLite.NET
sqlite-netおよびSQLite.NETとは、C Sharpだけで書かれた非常に小さなSQLite実装である。 なお、sqlite-netとSQLite.NETの表記は配布サイトなどの制限などで使い分けられており深い意味や違いはない。
目次
概要
C Sharpだけで書かれた先発品としてCSharp-SQLiteというがあるが、こちらは本家SQLiteが提供するSystem.Data.SQLiteからネイティブコードを排除し、かつ完全な互換性を求めているのに対して、sqlite-netは必要最小限の互換機能のみを実装すること最小化をはかっている。配布ファイルのサイズや実行時のメモリ消費量の制限などが厳しいスマートフォンなどの環境下では非常に活躍する。
sqlite-netではADO.NETへの対応などがバッサリ削ぎ落とされている。世の中に数ある.NET向けのORMはADO.NETが大前提なものばかりであるためsqlite-netをバックエンドには使えないと思った方がいい。その代わりにsqlite-netでは独自のシンプルなORMを搭載している。どうしてもADO.NET(汎用のORM)を使いたいという場合はCSharp-SQLiteを使うのが得策である。
使い方
インストール
SQLite.NETのインストールはNuGetで一発である。2015年4月時点ではNuGetで「sqlite-net」と検索すると1.x系が優先して表示されるが2.x系も下の方にちゃっかり表示されるので2.xがお望みなら見落とさないように注意しよう。
- バージョン 1.x
- バージョン 2.x
- https://www.nuget.org/packages/SQLite.Net-PCL/
- https://www.nuget.org/packages/SQLite.Net.Platform.Generic/
- 名称に「PCL」と入ってることからも分かるように2.x系はPCLになった。
Xamarin Componentsでも配布されているがXamarin.Macだと非対応環境だと弾かれインストールできないなどの問題を抱えているためNuGetを利用した方が良いと思われる。なお、使い方の説明はXamarin Componentsの方が詳しく書かれている。
名前空間
SQLite.NETの名前空間はバージョンで若干異なる。
- SQLite.NET 1.xは「SQLite」だけ
- SQLite.NET 2.xは「SQLite.Net」や「SQLite.Net.Attributes」などと小分けにされている。
中身のクラス構成などは1.xと2.xではそんなに差はないが、クラスメソッドの引数などに変更が入っている。
SQLite.Net 1.x
コネクションの生成
1.x系では何も考えることがない。
var db = new SQLiteConnection("database.sqlite3");
SQLite.Net 2.x
関連項目
- 類似
- System.Data.SQLite - 純正のWindowsで動くADO.NET対応のSQLite実装
- Mono.Data.SQLite - Monoで動くADO.NET対応のSQLite実装
- CSharp-SQLite - ピュアC#実装でどこでも動く。System.Data.SQLite完全互換を目指している。
- sqlite-net - ピュアC#実装でどこでも動く。ADO.NET対応などを切り捨て超軽量を目指している。