10

NHibernate で SQLite を使用して成功した後、Entity Framework Code First でのテストに SQLite を使用できることを非常にうれしく思います。

いくつかの接続文字列の例とデモのセットアップがあれば、それは素晴らしいことであり、忙しい一日から少し時間を節約できます.

どうもありがとう。

編集:

EFの「データコンテキスト」を介してcrudアクションを適用すると、デバッグ中にこのエラーが発生することに注意してください。

タイプ 'System.Data.SQLite.SQLiteConnection' の接続のプロバイダー名を特定できません。

<system.data>
    <DbProviderFactories>
        <remove invariant="System.Data.SQLite"/>
        <add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".Net Framework Data Provider for SQLite"
   type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite" />
    </DbProviderFactories>
</system.data>


<connectionStrings>
    <add name="DataContext"
         connectionString="Data Source=:memory:;Version=3;New=True;"
         providerName="System.Data.SQLite"
     />
</connectionStrings>

うまくいけば、EF はこの方法で SQLite と統合されます。エラーメッセージは、驚くべきことに、おそらくそうではないことを示唆していますが.

4

2 に答える 2

6

アセンブリ修飾名を使用する必要があります。

<add name="SQLite Data Provider" 
     invariant="System.Data.SQLite" 
     description=".Net Framework Data Provider for SQLite" 
     type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite, Version=1.0.66.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" />
于 2011-03-26T05:18:55.673 に答える
5

Code First は、任意の ADO.NET 3.5 レベル プロバイダー (これらは Entity Framework 機能を実装します) で正常に動作するはずです。

4.0 対応プロバイダーは、DeleteDatabase/CreateDatabase/DatabaseExists 機能も追加します。

Code First では、これら以外の追加のプロバイダー機能は必要ありません。

何が起こるかというと、接続のタイプを確認し、それをプロバイダーとそのプロバイダー ファクトリにマップし直して、必要な他のすべてのものを作成できるようにします。

3.5 レベルの機能をサポートする最新の SQLLite プロバイダーが GAC にインストールされていることを確認することをお勧めします。

于 2010-12-29T18:46:50.270 に答える