メインメニューを開く

SQLite.NET(別名:sqlite-net)とは、C#だけで書かれた非常に小さなSQLite実装である。 なお、sqlite-netとSQLite.NETの表記は配布サイトなどの表記制限で使い分けられており深い意味や違いはない。

目次

概要編集

C#だけで書かれた先発品としてCSharp-SQLiteというがあるが、こちらは本家SQLiteが提供するSystem.Data.SQLiteからネイティブコードを排除し、かつ完全な互換性を求めている。

一方でSQLite.NETは必要最小限のSQLite互換機能のみを実装することでさらなる軽量化と最小化を実現している。配布ファイルのサイズや実行時のメモリ消費量の制限などが厳しいスマートフォンなどの環境下では非常に活躍する。

ADO.NET非対応編集

SQLite.NETではADO.NETへの対応などがバッサリ削ぎ落とされている。世の中に数ある.NET向けのORMMicro ORMADO.NETが大前提なものばかりであるためSQLite.NETをバックエンドには使えないと思った方がいい。

その代わりSQLite.NETには非常にシンプルな独自のORMを搭載している。 ちなみにこのSQLite.NETの独自ORMは非常に使い勝手がよい。 標準でCRUDをサポートしUPSERTもできる。 あまりの評判の良さからADO.NET向けにソックリな機能を提供する「TheOne.OrmLite」というライブラリも登場している。

どうしてもADO.NET(Dapperなどの汎用のORM)を使いたいという場合はCSharp-SQLiteを使うのが得策である。

使い方編集

インストール編集

SQLite.NETのインストールはNuGetで一発である。2015年4月時点ではNuGetで「sqlite-net」と検索すると1.x系が優先して表示されるが、2.x系も下の方にちゃっかり表示されるので2.xがお望みなら見落とさないように注意しよう。

Xamarin Componentsでも配布されているがXamarin.Macだと非対応環境だとして弾かれインストールできないなどの問題を抱えているためNuGetを利用した方が良いと思われる。SQLite.NETの簡単な使い方の説明は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編集

関連項目編集

類似


外部リンク編集

参考文献編集