如何使用实体框架从WCF内部提取数据到客户端
本文关键字:提取 数据 客户端 内部 WCF 何使用 实体 框架 | 更新日期: 2023-09-27 17:51:05
我开发了一个内部使用实体框架进行数据库操作的WCF服务。而插入,更新和删除工作很好,我面临的问题,而从表中选择所有记录,并将其暴露给客户端。
我的代码暴露数据给客户端是:-
public IQueryable <Bank_Configuration> SelectBankConfiguration()
{
using (EFEntities objEFEntities = new EFEntities())
{
var Result= from c in objEFEntities.Bank_Configuration
select c;
return Result;
}
}
但是在客户端,当我使用此方法获取数据时,客户端给出错误在接收对"http://localhost:8732/Design_Time_Addresses/WcfServiceLibrary1/Service1/"的HTTP响应时发生错误。这可能是由于服务端点绑定没有使用HTTP协议。这也可能是由于服务器终止了HTTP请求上下文(可能是由于服务关闭)。查看服务器日志了解更多详细信息。
为什么会出现这个错误以及如何向客户端公开数据
您的EFEntities对象在WCF消息被序列化之前被处理,这是导致EF查询实际执行的原因。通过调用ToList()或ToArray()在"using"块中具体化你的结果集。
public IEnumerable<Bank_Configuration> SelectBankConfiguration()
{
using (EFEntities objEFEntities = new EFEntities())
{
var Result= from c in objEFEntities.Bank_Configuration
select c;
return Result.ToArray();
}
}