web-dev-qa-db-ja.com

SQLite用の.NET / C#ラッパーはありますか?

私はC#.Net内からSQLiteを使用したいのですが、適切なライブラリが見つからないようです。あるの?公式のですか?ラッパー以外のSQLiteを使用する他の方法はありますか?

266
ian93

https://system.data.sqlite.org から:

System.Data.SQLiteは、SQLite用のADO.NETアダプターです。

System.Data.SQLiteはRobert Simpsonによって開始されました。ロバートはまだこのリポジトリでコミット権限を持っていますが、もはやアクティブな貢献者ではありません。現在、開発および保守作業は、主にSQLite開発チームによって実行されています。 SQLiteチームは、System.Data.SQLiteの長期的なサポートに取り組んでいます。

「System.Data.SQLiteは、元のSQLiteデータベースエンジンであり、完全なADO.NET 2.0プロバイダーであり、すべて単一の混合モードアセンブリに統合されています。元のsqlite3.dllの完全なドロップイン置換です(名前を変更することもできますsqlite3.dll)。通常の混合アセンブリとは異なり、.NETランタイムへのリンカー依存関係がないため、.NETから独立して配布できます。

モノもサポートしています。

327
ine

ここに私が見つけることができるものがあります:

ソース:

32
Tom Robinson

現在、このオプションもあります。 http://code.google.com/p/csharp-sqlite/ -SQLiteのC#への完全なポート。

26
xanadont

Sqlite.orgの人々は、ADO.NETプロバイダーの開発を引き継ぎました。

彼らのホームページ から:

これは、System.Data.SQLiteとして知られるSQLite用の一般的なADO.NET 4.0アダプターのフォークです。 System.Data.SQLiteの作成者であるRobert Simpsonは、この分岐を認識しており、彼の承認を表明し、新しいFossilリポジトリに対するコミット特権を持っています。 SQLite開発チームは、System.Data.SQLiteを今後も維持する予定です。

過去のバージョンと元のサポートフォーラムは http://sqlite.phxsoftware.com にありますが、2010年4月以降このバージョンへの更新はありません。

機能の完全なリストは wiki上 にあります。ハイライトが含まれます

  • ADO.NET 2.0サポート
  • Entity Frameworkの完全サポート
  • モノラルの完全サポート
  • Visual Studio 2005/2008の設計時サポート
  • Compact Framework、C/C++サポート

リリースされたDLLは、 サイト から直接ダウンロードできます。

15
David Schmitt

間違いなくSystem.Data.SQLite(前述のとおり: http://sqlite.phxsoftware.com/ =)

ADO.NET(System.Data。*)と一貫性があり、単一のDLLにコンパイルされます。 sqlite3.dllはありません-SQLiteのCコードはSystem.Data.SQLite.dllに埋め込まれているためです。マネージドC++マジック。

8
tonyz

sqlite-net は、.NETおよびMonoアプリケーションが SQLite 3データベース にデータを保存できるようにするためのオープンソースの最小ライブラリです。詳細は wikiページ をご覧ください。

C#で記述されており、プロジェクトで簡単にコンパイルすることを意図しています。最初はiPhoneのMonoTouchで動作するように設計されていましたが、すべてのプラットフォーム(Mono for Android、.NET、Silverlight、WP7、WinRT、Azureなど)で動作するように成長しました。

Nugetパッケージ として入手できます。2014年現在、60,000回以上ダウンロードされている2番目に人気のあるSQLiteパッケージです。

sqlite-netは、迅速かつ便利なデータベースレイヤーとして設計されました。その設計は、次の目標に基づいています。

  • 既存のプロジェクトおよびMonoTouchプロジェクトと非常に簡単に統合できます。
  • SQLiteの薄いラッパーであり、高速で効率的でなければなりません。 (ライブラリがクエリのパフォーマンスのボトルネックになってはいけません。)
  • CRUD操作とクエリを安全に(パラメータを使用して)実行し、それらのクエリの結果を厳密に型指定された方法で取得するための非常に簡単な方法。
  • クラスを強制的に変更せずにデータモデルを操作します。 (小さな反射駆動ORMレイヤーが含まれます。)
  • コンパイル済み形式のsqlite2ライブラリ以外の0依存関係。

非目標は次のとおりです。

  • NotADO.NET実装ではありません。これは完全なSQLiteドライバーではありません。必要な場合は、System.Data.SQLiteを使用してください。
7
dodgy_coder

Monoにはラッパーが付属しています。 https://github.com/mono/mono/tree/master/mcs/class/Mono.Data.Sqlite/Mono.Data.Sqlite_2. は、実際のSQLite dllをラップするコードを提供します(- http://www.sqlite.org/sqlite-Shell-win32-x86-3071300.Zip ダウンロードページにあります http://www.sqlite.org/download.html/ ).netフレンドリーな方法で。 LinuxまたはWindowsで動作します。

これはすべての世界で最も薄いようで、サードパーティのライブラリへの依存を最小限に抑えます。このプロジェクトを最初からやり直さなければならなかった場合、これが私がやる方法です。

2

Microsoft.Data.Sqlite

Microsoftは、ASP.NET Coreの一部として提供されている.NETのファーストパーティSQLiteソリューションとしてMicrosoft.Data.Sqliteを提供しています。ライセンスは Apacheライセンス、バージョン2. です。

*免責事項:私は実際にこれを実際に使用したことはありませんが、Microsoft Docsで提供されているドキュメントがあります ここ .NET CoreおよびUWPで使用するために

ADO.NETを必要としない、または望まない私のような人、SQLiteに近いコードを実行する必要があるが、netstandard(.netフレームワーク、.netコアなど)と互換性がある人、ここでgithubで利用可能なSQLNado( "Not ADO")という100%無料のオープンソースプロジェクトを構築しました。

https://github.com/smourier/SQLNado

ここではヌジェとして利用できます https://www.nuget.org/packages/SqlNado また、単一の.csファイルとして利用できるため、C#プロジェクトタイプで使用するのは非常に実用的です。

SQLコマンドを使用するときにすべてのSQLite機能をサポートし、.NETを介してほとんどのSQLite機能もサポートします。

  • クラスからテーブルへの自動マッピング(保存、削除、読み込み、LoadAll、LoadByPrimaryKey、LoadByForeignKeyなど)
  • クラスと既存のテーブル間のスキーマ(テーブル、列)の自動同期
  • スレッドセーフな操作向けに設計
  • WhereおよびOrde​​rBy LINQ/IQueryable .NET式がサポートされています(この領域ではまだ作業が進行中です)、照合のサポートもあります
  • .NETに公開されているSQLiteデータベーススキーマ(テーブル、列など)
  • SQLiteカスタム関数は.NETで作成できます
  • SQLiteのインクリメンタルBLOB I/Oは.NETストリームとして公開され、高いメモリ消費を回避します。
  • .NETコードを使用してカスタム照合を追加する可能性を含む、SQLite照合のサポート
  • SQLite全文検索エンジン(FTS3)のサポート。NETコード(ローカライズされたストップワードなど)を使用してカスタムFTS3トークナイザーを追加する可能性を含みます。他の.NETラッパーがそれを行うとは思わない。
  • Windows 'winsqlite3.dll'(最近のWindowsバージョンのみ)のの自動サポートにより、バイナリ依存関係ファイルの出荷が回避されます。これはAzure Webアプリでも機能します!.
1
Simon Mourier

Monotouchのバージョン1.2には、System.Dataのサポートが含まれています。詳細についてはこちらをご覧ください: http://monotouch.net/Documentation/System.Data

しかし基本的には、通常のADO .NETパターンをsqliteで使用できます。

0
user203709

Sqliteライブラリによって提供される関数のベアボーンラッパー。最新バージョンは、sqliteライブラリ3.7.10で提供される機能をサポートします

SQLiteWrapperプロジェクト

0
Eminem

http://www.devart.com/dotconnect/sqlite/

dotite for SQLiteは、ADO.NETテクノロジに基づいて構築され、SQLiteベースのデータベースアプリケーションを開発するための完全なソリューションを提供する、SQLiteの拡張データプロバイダーです。 Devartデータベースアプリケーション開発フレームワークの一部として、dotite for SQLiteは、SQLiteデータベースへの高性能なネイティブ接続と、多数の革新的な開発ツールおよび技術の両方を提供します。

dotConnect for SQLiteは、アプリケーションアーキテクチャを設計するための新しいアプローチを導入し、生産性を高め、データベースアプリケーションの実装を活用します。

私は標準バージョンを使用し、完璧に動作します:)

0
Antonio