0

SQLite を Visual Studio 2013 に接続する方法についてのこの素晴らしいチュートリアルに非常に厳密に従いましたが、チュートリアルのエンティティ データ モデル ウィザードの部分に到達すると、SQLite 接続または SQLite プロバイダーが表示されず、オプションしかありません。 SQL サーバー用。

私はチュートリアルに非常に厳密に従いました。SQL Server Compact/SQLite ツールボックスをインストールして、プロジェクトを x86 にコンパイルし、Entity Framework Visual Studio ツールをインストールしようとしましたが、それでも何も起こりません。

私のpackages.configは次のようになります:

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="CommonServiceLocator" version="1.2" targetFramework="net45" />
  <package id="EntityFramework" version="6.1.2" targetFramework="net45" />
  <package id="NodaTime" version="1.3.0" targetFramework="net45" />
  <package id="Prism" version="5.0.0" targetFramework="net45" />
  <package id="Prism.Composition" version="5.0.0" targetFramework="net45" />
  <package id="Prism.Interactivity" version="5.0.0" targetFramework="net45" />
  <package id="Prism.Mvvm" version="1.0.0" targetFramework="net45" />
  <package id="Prism.PubSubEvents" version="1.0.0" targetFramework="net45" />
  <package id="System.Data.SQLite.Core" version="1.0.94.0" targetFramework="net45" />
  <package id="System.Data.SQLite.EF6" version="1.0.94.0" targetFramework="net45" />
</packages>

これに関するアドバイスはありますか?


編集1:

非推奨ですが、SQL Server CE 4.0 に移行しています。4Gbの制限がないため、むしろSQLiteを使用していますが、機能させることができず、EFがスムーズに統合されていないことを読みました。

しかし、新しい問題が発生しました。これは、SQL Server CE 4 と MySQL の両方で発生します。

EF 6.1.2 のエラー

このような些細なことでプロジェクトに行き詰まるのが嫌いなのですが、これを解決する方法を知っている人はいますか?

4

4 に答える 4

2

今朝、まさにこの問題に遭遇し (元の問題で参照されたブログ投稿をフォローしていました)、問題とその解決方法を見つけました。

  1. SqlLite EF6 の nuget パッケージをアンインストールする
  2. app.config から system.data エントリを削除します
  3. ナゲットパッケージをインストールする
  4. 2 つの remove と 1 つの add のみを app.config に入れます

    <DbProviderFactories>
      <remove invariant="System.Data.SQLite" />
      <remove invariant="System.Data.SQLite.EF6" />
      <add name="SQLite Data Provider (Entity Framework 6)" invariant="System.Data.SQLite.EF6" description=".NET Framework Data Provider for SQLite (Entity Framework 6)" type="System.Data.SQLite.EF6.SQLiteProviderFactory, System.Data.SQLite.EF6" />
    

  5. これで、SQLLite が ADO​​.NET Entity Data Model 接続領域に表示されます

2 番目の「追加」を system.data に追加して、実行時に機能させる必要があるかもしれません。まだそこまで行っていないからです。

于 2015-02-23T20:10:03.297 に答える
0

GAC に 1.0.94 SQLite VS Tools しかインストールされていませんか?

于 2015-02-20T10:02:40.553 に答える
0

私もチュートリアルに従いました。コメントでもすべてを確認してください。私のシステムに欠けていたもの (Visual Studio 2015、Entity Framework 6.1.3、および nuget パッケージとしての sqlite 1.0.103 は、「entityFramework / Providers」セクションの App.config に次の行を追加することでした (標準の後に追加しました: provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer")

<provider invariantName="System.Data.SQLite.EF6" type="System.Data.SQLite.EF6.SQLiteProviderServices, System.Data.SQLite.EF6" />

その後、サーバー エクスプローラーに既に含まれている sqlite への接続 (これは既に機能していました) は、Entity Framework の標準的なものでした。

于 2016-12-12T09:22:37.287 に答える