SQLiteの.NET / C#ラッパーはありますか?[閉まっている]


267

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


4
これはこの質問の複製です:stackoverflow.com/questions/26020/…そして、別の答えがあります。
スチュワートジョンソン

2
実際、私はどちらの回答も同じプロジェクトにリンクしていると思います。
コリン、

回答:


328

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

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

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

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

モノもサポートします。


33
これは古い質問ですが、$ 0.02を追加する必要がありました。System.Data.SQLiteロック それは超洗練された、安定した、商業グレードの品質です。何よりも、100%マネージドコードであり、パブリックドメインのソースコードとしてリリースされています。
Nathan Ridley、

4
人々が両方を異なるものとして話しているので、ちょうど一貫性のために。sqlite.phxsoftware.comで、ダウンロードのためにsourceforge.net/projects/sqlite-dotnet2にアクセスします。
yeyeyerman 2009

16
このラッパーは、元の作成者によって開発されなくなったため、SQLite自体が開発を引き継いだようです。新しいサイトはsystem.data.sqlite.orgにありますが、現在のところ、元のサイトに比べてユーザーフレンドリーではなく、進行中の作業のようです。
ミケル

5
@NathanRidley-この答えは「System.Data.SQLiteは元のSQLiteデータベースエンジンであり、完全なADO.NET 2.0プロバイダーはすべて単一の混合モードアセンブリに組み込まれている」と言っているため、100%管理されていますか?
logicnp

2
ちなみに、MicrosoftのMicrosoft.Data.Sqlite .NET Standard Nugetパッケージを使用してみましたが、AsyncPoco Githubライブラリのいくつかの統合テストで失敗しました。System.Data.SQLiteに切り替えた後、すべてが完全に機能しました。
Lee Grissom



15

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は、サイトから直接ダウンロードできます。


既製のDLLが利用可能になりました
zomf

8

私は間違いなくSystem.Data.SQLiteを使用します(前述のとおり:http : //sqlite.phxsoftware.com/

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


リンクは現在404
SqlACID

7

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

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

Nugetパッケージとして利用できます。2014年の時点で60,000以上のダウンロードがあり、2番目に人気のあるSQLiteパッケージです。

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

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

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

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

2014年以前のコメントのほとんどで、System.Data.SQLiteをWindowsストアアプリにインストールしようとした(動作しなかった)と述べています。Sqlite-netが機能します。
JeeShen Lee 2016

2

Monoにはラッパーが付属しています。https://github.com/mono/mono/tree/master/mcs/class/Mono.Data.Sqlite/Mono.Data.Sqlite_2.0は、実際のSQLite dll(http://www.sqlite。ダウンロードページhttp://www.sqlite.org/download.html/にあるorg / sqlite-shell-win32-x86-3071300.zipは、.netに適した方法で。LinuxまたはWindowsで動作します。

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


2

Microsoft.Data.Sqlite

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

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


2

ADO.NETを必要としない、または必要としない私のような人々、SQLiteに近いコードを実行する必要があるが、netstandard(。netフレームワーク、.netコアなど)と互換性がある人々のために、SQLNado(「Not ADO」用)と呼ばれる100%無料のオープンソースプロジェクトは、githubから入手できます。

https://github.com/smourier/SQLNado

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

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

  • クラスからテーブルへの自動マッピング(保存、削除、ロード、LoadAll、LoadByPrimaryKey、LoadByForeignKeyなど)
  • クラスと既存のテーブルの間のスキーマ(テーブル、列)の自動同期
  • スレッドセーフ操作向けに設計
  • OrderBy 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アプリでも機能します。


0

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

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

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

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


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.