2014-01-07 36 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

相關問題