我正在检查VistaDB5安装附带的EntityFrameworkBasics示例项目。当我尝试构建项目时,尽管下面给出了错误消息,但它仍成功编译:
错误1 错误 168:在类型为"VistaDB.Provider.VistaDBProviderFactory"的存储提供程序实例上调用"GetService"方法后返回 null。存储提供程序可能无法正常运行。C:\Users\Public\Documents\VistaDB 5\Samples\Entity Framework\Basics\EFSampleCRUD\EmployeeModel.edmx 7 7 EFSampleCRUD
我没有更改对项目文件的任何更改。app.config 文件如下:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<connectionStrings>
<add name="Entities" connectionString="metadata=res://*/EmployeeModel.csdl|res://*/EmployeeModel.ssdl|res://*/EmployeeModel.msl;provider=System.Data.VistaDB5;provider connection string='Data Source="SimpleDB.vdb5"'" providerName="System.Data.EntityClient"/>
</connectionStrings>
<system.data>
<DbProviderFactories>
<remove invariant="System.Data.VistaDB5" />
<add invariant="System.Data.VistaDB5" name="VistaDB 5 Data Provider"
description="VistaDB 5 ADO.NET Provider for .Net 4"
type="VistaDB.Provider.VistaDBProviderFactory, VistaDB.5.NET40" />
</DbProviderFactories>
</system.data>
</configuration>
但是,成功构建后,运行应用程序时没有错误。此外,如果我添加新的 ADO.NET 实体数据模型并选择从数据库生成并单击新连接,则在VS2012的数据源或数据提供程序部分中看不到VistaDB5
为了解决在Visual Studio设计器中看到VistaDB5的问题,我建议检查两件事 -
- 卸载并重新安装 VistaDB 5。 安装集成了Visual Studio,将自己注册为DDEX提供商,从而获得它在有问题的名单上。 只需拥有 VistaDB 程序集周围是不够的。 如果曾经安装 EF 6
- 的工具,请安装 EF 6 的最新工具。 该工具取代了以前的设计器并且在少数情况下引入了工具第三方提供商(如 VistaDB)的问题。
如果这不能解决问题,我建议您与我们联系并在以下位置开票:support.gibraltarsoftware.com