web-dev-qa-db-ja.com

SQLiteを使用したLINQ(linqtosql)

ストレージを必要とする小さなプロジェクトがあり(SQLiteを選択)、 ADO DLL for .Net for Sqlite で良い結果が得られました。

インストール後、SQLLinq.dllが含まれていることに気付きました。あまりにも多くの努力を調査する前に、そして私はウェブ上で良い例を見ていないので、誰かがSQLiteとLINQで良い結果を得たかどうか知りたいのですが?

* linqtosqlがSQLデータベースと同じように機能する場合は、お知らせください。以前にLinqtosqlを使用したことがないため、試してみる絶好の機会だと思ったので、私はそれを見たときにDllに興味を持ちました。

57

最近、 DBLinq を発見しました。これは、他のDBの中でもSQLiteをサポートしています。

49
Ricardo Amores

私自身の経験から言えば、Microsoft SQL Compact Frameworkは真のNO-GOです。本当に遅く、クエリアナライザーは本当に貧弱です。 SQL CEのひどいパフォーマンスを取り除くために、Windows Mobileコンポーネントの配管コードをすべて書き直すようにチームに依頼する必要がありました。

10
fmarceau

LINQ to SQLはSQL Server/Compactのみをサポートしますが、SQLiteの人々がアセンブリの名前を指定して独自のLINQプロバイダーを作成した可能性があります。

その場合、参照を追加することでLINQクエリ構文を使用できますが、DataContext/designer/SQL Metal/Column attributes/EntitySet/EntityRefなどのLINQ to SQL固有の機能は取得できません。

8
DamienG

私はこの質問が古いことを知っていますが、現時点では、ここで.NETのSQLiteサポートの公式実装を見つけることができると思います: http://system.data.sqlite.org/index.html/doc/ trunk/www/index.wiki 。良い入門記事がここにあります: http://www.codeproject.com/Articles/236918/Using-SQLite-embedded-database-with-entity-framewo

4
swdev

これはあなたの質問に対する答えではありませんが、代わりにSQL Compactを使用できます:

http://www.Microsoft.com/Sqlserver/2005/en/us/compact.aspx

これはLINQ-to-SQLを適切にサポートしており、(名前にもかかわらず)ストレージ要件が小さいデスクトップアプリに最適です。

3
stusmith

NuGetには、「LINQ to SQLite」というパッケージがあります。試したことはありませんが、新鮮なようです。

https://www.nuget.org/packages/linq2db.SQLite/

2
DenNukem

これはsqliteへの良いlinqです。

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

1
Matt Peters

EntityFramework 7では、SqLiteのサポートが向上し、EntityFramework.Commandsを使用していくつかの移行を作成することができます。これがチュートリアルです:

https://xamlbrewer.wordpress.com/2016/06/01/getting-started-with-sqlite-and-entity-framework-on-uwp/

前提条件として、少なくともPowerShell3をインストールする必要があります。

1
Stefan

DBLinqはもはやメンテナンスされていないので、検索を続け、 この回答 は、Linq to Sql、Entity Framework、およびSQLiteを使用したソリューションを不明確に指し示しています。 ブログ投稿 彼のリンク先は少し古くなっていますが、いくつかの微調整を行った結果、実例の作成GitHubで。

Visual Studio 2013でOOTBを実行する必要があります。別のテーブルに関連レコードがある)レコードの追加、変更、削除を示します。ArtistクラスとAlbumクラスはそれぞれのテーブル(一部Entity Frameworkの、私は信じています)。注意すべきいくつかの落とし穴のreadmeを参照してください。

0
Vimes