如何使用实体框架从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请求上下文(可能是由于服务关闭)。查看服务器日志了解更多详细信息。

为什么会出现这个错误以及如何向客户端公开数据

如何使用实体框架从WCF内部提取数据到客户端

您的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();
    }            
}