首页 文章

找不到实体框架提供程序 - 从VB6中调用C#Com DLL

提问于
浏览
1

我想在我的VB6应用程序中使用的C#Com可见DLL中使用EF6,但遇到错误 . 注意我没有使用app.config,而是从VB6程序传递连接字符串 .

在C#代码中,我按如下方式访问DBContext;

private static MyDataEntities CreateDb()
{ 
    return new MyDataEntities(EFConnectionString);
}

EFConnectionString是

"metadata=res://*/vivModel.csdl|res://*/vivModel.ssdl|res://*/vivModel.msl;provider=System.Data.SqlClient;provider connection string='data source=MYPC\SQL2008R2;initial catalog=MyDatabase;user id=sa;password=mypassword;MultipleActiveResultSets=True;App=EntityFramework'"

错误消息是

[[指定的架构无效 . 错误:vivModel.ssdl(2,2):错误0152:找不到具有不变名称“System.Data.SqlClient”的ADO.NET提供程序的实体框架提供程序 . 确保提供程序已在应用程序配置文件的“entityFramework”部分中注册 . 有关详细信息,请参阅http://go.microsoft.com/fwlink/?LinkId=260882 . ]]

3 回答

  • 6

    我使用VS 2013,EF 6.1.1在具有两个Web应用程序项目和一个类库的N层解决方案中遇到了同样的错误 . 我已经在这个类库中安装了EF . 我在Web应用程序项目中安装EF时解决了这个问题 . 之后,在bin / debug文件夹中找到了EntityFramework.sqlserver.dll . 我在another stackoverflow question找到了解决方案 .

  • 2

    我已经能够通过将packages文件夹中的dll复制到与我的vb可执行文件相同的文件夹来解决此错误 . EntityFramework.sqlserver.dll没有找到绑定\ debug的方法

  • 0

    必须在Bin文件夹中添加两个DLL文件1. EntityFramework.SqlServer.dll 2. EntityFramework.dll

    注意:如果两者都在dll中添加,那么请检查你的dll

相关问题