2014-01-07 35 views
1

我想在我的VB6应用程序中使用的C#Com可见DLL中使用EF6,但遇到错误。注意我没有使用app.config,而是从VB6程序传入连接字符串。找不到实体框架提供程序 - 从VB6中调用C#Com DLL

在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。]]

回答

2

我已经能够通过复制包文件夹的DLL文件相同的文件夹我的VB可执行闯过此错误。 EntityFramework.sqlserver.dll没有找到绑定\ debug的方式

6

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

0

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

注:如果两者都在DLL中添加,然后检查你的DLL

相关问题