我想用代理实现WCF服务。服务和代理位于2个不同的项目中。 entityFramework位于Service项目中。在代理的app.config中,我将连接字符串设置如下:
<add name="foodOrderEntities" connectionString="metadata=res://*/foodOrderEF.csdl|res://*/foodOrderEF.ssdl|res://*/foodOrderEF.msl;provider=System.Data.SqlClient;
provider connection string="data source=(LocalDB)\MSSQLLocalDB;attachdbfilename=|DataDirectory|\foodOrder.mdf;integrated security=True;connect timeout=30;
MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
但是当我尝试使用服务测试客户端调用该方法时,我得到以下异常: @&#34;实体框架提供程序类型&#39; System.Data.Entity.SqlServer.SqlProviderServices,EntityFramework.SqlServer&#39;在具有不变名称&System; System.SData.SqlClient&无法加载。确保使用了程序集限定名称,并且程序集可供正在运行的应用程序使用。有关详细信息,请参阅http://go.microsoft.com/fwlink/?LinkId=260882。&#34;
请有人告诉我如何以代理项目serviceHost可以成功访问数据库的方式设置连接字符串?或者我是否需要为EF对象独立创建另一个项目,然后添加引用?
答案 0 :(得分:0)
很抱歉,我找到了另一篇与此问题相关的帖子。 No Entity Framework provider found for the ADO.NET provider with invariant name 'System.Data.SqlClient'
毕竟,我需要做的只是将EntityFramework.SqlServer.dll的引用添加到代理项目中。
答案 1 :(得分:0)
尝试在服务项目中安装Nuget Entity Framework下载。我非常确定Service项目和ADO.NET数据层项目都应安装了Entity Framework。