【问题标题】: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 项目中引发此异常,而不是桌面应用程序。
可能会帮助别人。