【问题标题】:Adding Entity Framework configuration in Visual Studio extension在 Visual Studio 扩展中添加实体框架配置
【发布时间】:2016-12-22 08:04:14
【问题描述】:

这是我的解决方案架构:

  • VM(类库)=> 引用 SQLite。
  • 应用(WPF 桌面应用)=> 引用 VM。
  • VSIX(Visual Studio 扩展)=> 引用 VM。

我已将与 EF 提供程序相关的内容从 VM 项目的 app.config 复制到桌面应用程序和 VSIX 项目。桌面应用运行良好,而 VSIX 项目抛出以下异常:

找不到具有不变名称“System.Data.SQLite.EF6”的 ADO.NET 提供程序的实体框架提供程序。确保提供程序已在应用程序配置文件的“entityFramework”部分注册。

在扩展项目的情况下我需要做些什么特别的事情吗?

【问题讨论】:

    标签: wpf entity-framework visual-studio-extensions system.data.sqlite


    【解决方案1】:

    在以下类中添加最后一行为我修复了它:

    public class SQLiteConfiguration : DbConfiguration
    {
      public SQLiteConfiguration()
      {
        SetProviderFactory("System.Data.SQLite", SQLiteFactory.Instance);
        SetProviderFactory("System.Data.SQLite.EF6", SQLiteProviderFactory.Instance);
        SetProviderServices("System.Data.SQLite", (DbProviderServices)SQLiteProviderFactory.Instance.GetService(typeof(DbProviderServices)));
        SetProviderServices("System.Data.SQLite.EF6", (DbProviderServices)SQLiteProviderFactory.Instance.GetService(typeof(DbProviderServices)));
      }
    }
    

    不确定为什么仅在 VSIX 项目中引发此异常,而不是桌面应用程序。

    可能会帮助别人。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-08-12
      • 1970-01-01
      • 2014-01-23
      • 2013-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多