メインメニューを開く
MonoBook
検索
差分
← 古い編集
SQLite.NET
402 バイト追加
,
2020年5月15日 (金) 00:48
→概要
{{小文字}}
'''sqlite-net'''および
'''SQLite.NET'''
とは、
(別名:sqlite-net)とは、
[[C
#
Sharp
|C
Sharp
#
]]だけで書かれた非常に小さな[[SQLite]]実装である。なお、sqlite-netとSQLite.
NETの表記は配布サイトなどの制限などで使い分けられており深い意味や違いはない。
NETの表記は配布サイトなどの表記制限で使い分けられており深い意味や違いはない。
==概要==
[[C Sharp|C#]]だけで書かれた先発品として[[CSharp-SQLite]]というがあるが、こちらは本家[[SQLite]]が提供する[[System.Data.SQLite]]から[[ネイティブコード]]
を排除し、かつ完全な互換性を求めているのに対して、sqlite-netは必要最小限のSQLite互換機能のみを実装することで最小化をはかっている。配布ファイルのサイズや実行時のメモリ消費量の制限などが厳しい[[スマートフォン]]などの環境下では非常に活躍する。
を排除し、かつ完全な互換性を求めている。
sqlite-netでは[[ADO.NET]]への対応などがバッサリ削ぎ落とされている。世の中に数ある[[.NET]]向けの[[ORM]]は[[ADO
一方でSQLite
.
NET]]が大前提なものばかりであるためsqlite-netをバックエンドには使えないと思った方がいい。その代わりにsqlite-netでは独自のシンプルな[[ORM]]を搭載している。どうしても[[ADO.NET]](汎用の[[ORM]])を使いたいという場合は
NETは必要最小限のSQLite互換機能のみを実装することでさらなる軽量化と最小化を実現している。配布ファイルのサイズや実行時のメモリ消費量の制限などが厳しい
[[
CSharp-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系も下の方にちゃっかり表示されるので2.xがお望みなら見落とさないように注意しよう。
*バージョン 1.x
*:https://www.nuget.org/packages/sqlite-net/
*:名称に「[[PCL]]」と入ってることからも分かるように2.x系は[[PCL]]になった。
[[Xamarin Components]]でも配布されているが[[Xamarin.Mac]]
だと非対応環境だと弾かれ
だと非対応環境だとして弾かれ
[[インストール]]できないなどの問題を抱えているため[[NuGet]]
を利用した方が良いと思われる。なお、使い方の説明は
を利用した方が良いと思われる。SQLite.NETの簡単な使い方の説明は
[[Xamarin Components]]の方が詳しく書かれている。
*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ではそんなに差はないが、クラスメソッドの引数などに変更が入っている。
Administrator
ビューロクラット
、
インターフェース管理者
、
管理者
8,496
回編集