「SQLite.NET」の版間の差分
(→概要) |
Administrator (トーク | 投稿記録) (→概要) |
||
(3人の利用者による、間の4版が非表示) | |||
1行目: | 1行目: | ||
− | + | '''SQLite.NET'''(別名:sqlite-net)とは、[[C Sharp|C#]]だけで書かれた非常に小さな[[SQLite]]実装である。 | |
− | + | なお、sqlite-netとSQLite.NETの表記は配布サイトなどの表記制限で使い分けられており深い意味や違いはない。 | |
− | なお、sqlite-netとSQLite. | ||
==概要== | ==概要== | ||
− | [[C Sharp|C#]]だけで書かれた先発品として[[CSharp-SQLite]]というがあるが、こちらは本家[[SQLite]]が提供する[[System.Data.SQLite]]から[[ネイティブコード]] | + | [[C Sharp|C#]]だけで書かれた先発品として[[CSharp-SQLite]]というがあるが、こちらは本家[[SQLite]]が提供する[[System.Data.SQLite]]から[[ネイティブコード]]を排除し、かつ完全な互換性を求めている。 |
− | + | 一方でSQLite.NETは必要最小限のSQLite互換機能のみを実装することでさらなる軽量化と最小化を実現している。配布ファイルのサイズや実行時のメモリ消費量の制限などが厳しい[[スマートフォン]]などの環境下では非常に活躍する。 | |
− | ==使い方== | + | == ADO.NET非対応 == |
− | ===インストール=== | + | SQLite.NETでは[[ADO.NET]]への対応などがバッサリ削ぎ落とされている。世の中に数ある[[.NET]]向けの[[ORM]]や[[Micro ORM]]は[[ADO.NET]]が大前提なものばかりであるためSQLite.NETをバックエンドには使えないと思った方がいい。 |
− | SQLite.NETのインストールは[[NuGet]]で一発である。2015年4月時点ではNuGetで「sqlite-net」と検索すると1. | + | |
+ | その代わり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 | *バージョン 1.x | ||
*:https://www.nuget.org/packages/sqlite-net/ | *:https://www.nuget.org/packages/sqlite-net/ | ||
18行目: | 27行目: | ||
*:名称に「[[PCL]]」と入ってることからも分かるように2.x系は[[PCL]]になった。 | *:名称に「[[PCL]]」と入ってることからも分かるように2.x系は[[PCL]]になった。 | ||
− | [[Xamarin Components]]でも配布されているが[[Xamarin.Mac]] | + | [[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の名前空間はバージョンで若干異なる。 | ||
− | *SQLite.NET 1.xは「SQLite」だけ | + | * SQLite.NET 1.xは「SQLite」だけ |
− | *SQLite.NET 2.xは「SQLite.Net」や「SQLite.Net.Attributes」などと小分けにされている。 | + | *SQLite.NET 2.xは「SQLite.Net」や「SQLite.Net.Attributes」などと小分けにされている。 |
中身のクラス構成などは1.xと2.xではそんなに差はないが、クラスメソッドの引数などに変更が入っている。 | 中身のクラス構成などは1.xと2.xではそんなに差はないが、クラスメソッドの引数などに変更が入っている。 |
2020年5月15日 (金) 00:48時点における最新版
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向けのORMやMicro ORMはADO.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がお望みなら見落とさないように注意しよう。
- バージョン 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を利用した方が良いと思われる。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[編集 | ソースを編集]
関連項目[編集 | ソースを編集]
- 類似
- 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対応などを切り捨て超軽量を目指している。