「SQLite.NET」の版間の差分

ページの作成:「{{小文字}} '''sqlite-net'''および'''SQLite.NET'''とは、C Sharpだけで書かれた非常に小さなSQLite実装である。 なお、sqlite-netとSQ...」
 
 
(4人の利用者による、間の7版が非表示)
1行目: 1行目:
{{小文字}}
'''SQLite.NET'''(別名:sqlite-net)とは、[[C Sharp|C#]]だけで書かれた非常に小さな[[SQLite]]実装である。
'''sqlite-net'''および'''SQLite.NET'''とは、[[C#|C Sharp]]だけで書かれた非常に小さな[[SQLite]]実装である。
なお、sqlite-netとSQLite.NETの表記は配布サイトなどの表記制限で使い分けられており深い意味や違いはない。
なお、sqlite-netとSQLite.NETの表記は配布サイトなどの制限などで使い分けられており深い意味や違いはない。


==概要==
==概要==
[[C#|C Sharp]]だけで書かれた先発品として[[CSharp-SQLite]]というがあるが、こちらは本家[[SQLite]]が提供する[[System.Data.SQLite]]から[[ネイティブコード]]を排除し、かつ完全な互換性を求めているのに対して、sqlite-netは必要最小限の互換機能のみを実装すること最小化をはかっている。配布ファイルのサイズや実行時のメモリ消費量の制限などが厳しい[[スマートフォン]]などの環境下では非常に活躍する。
[[C Sharp|C#]]だけで書かれた先発品として[[CSharp-SQLite]]というがあるが、こちらは本家[[SQLite]]が提供する[[System.Data.SQLite]]から[[ネイティブコード]]を排除し、かつ完全な互換性を求めている。


sqlite-netでは[[ADO.NET]]への対応などがバッサリ削ぎ落とされている。世の中に数ある[[.NET]]向けの[[ORM]]は[[ADO.NET]]が大前提なものばかりであるためsqlite-netをバックエンドには使えないと思った方がいい。その代わりにsqlite-netでは独自のシンプルな[[ORM]]を搭載している。どうしても[[ADO.NET]](汎用の[[ORM]])を使いたいという場合は[[CSharp-SQLite]]を使うのが得策である。
一方でSQLite.NETは必要最小限のSQLite互換機能のみを実装することでさらなる軽量化と最小化を実現している。配布ファイルのサイズや実行時のメモリ消費量の制限などが厳しい[[スマートフォン]]などの環境下では非常に活躍する。


==使い方==
== ADO.NET非対応 ==
===インストール===
SQLite.NETでは[[ADO.NET]]への対応などがバッサリ削ぎ落とされている。世の中に数ある[[.NET]]向けの[[ORM]]や[[Micro ORM]]は[[ADO.NET]]が大前提なものばかりであるためSQLite.NETをバックエンドには使えないと思った方がいい。
[[NuGet]]で一発である。
*https://www.nuget.org/packages/sqlite-net/


[[Xamarin Components]]でも配布されているが[[Xamarin.Mac]]だと非対応環境だと弾かれ[[インストール]]できないなどの問題を抱えているため[[NuGet]]を利用した方が良いと思われる。なお、使い方の説明は[[Xamarin Components]]の方が詳しく書かれている。
その代わり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がお望みなら見落とさないように注意しよう。
*バージョン 1.x
*:https://www.nuget.org/packages/sqlite-net/
*バージョン 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]]を利用した方が良いと思われる。SQLite.NETの簡単な使い方の説明は[[Xamarin Components]]の方が詳しく書かれている。
*https://components.xamarin.com/view/sqlite-net
*https://components.xamarin.com/view/sqlite-net
===名前空間===
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系では何も考えることがない。
<source lang="csharp">
var db = new SQLiteConnection("database.sqlite3");
</source>
===SQLite.Net 2.x===
<!--
<source lang="csharp">
var platform = new SQLite.Net.Platform.Generic.SQLitePlatformGeneric();
var db = new SQLiteConnection(platform, dbPath);
</source>
-->


==関連項目==
==関連項目==