c# - 如何使用 Entity Framework 从 WCF 内部提取数据到客户端

标签 c# .net wcf entity-framework

我开发了WCF服务,该服务在内部使用 Entity Framework 进行数据库操作。虽然插入、更新和删除工作正常,但我在从该表中选择所有记录并将其公开给客户端时遇到问题。

我向客户端公开数据的代码是:-

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 响应时发生错误。这可能是由于服务端点绑定(bind)不使用 HTTP 协议(protocol)。这也可能是由于服务器中止 HTTP 请求上下文(可能是由于服务关闭)。有关更多详细信息,请参阅服务器日志。

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

最佳答案

您的 EFEntities 对象在 WCF 消息被序列化之前被释放,这才是导致 EF 查询实际执行的原因。通过调用 ToList() 或 ToArray() 在“using” block 内具体化结果集。

public IEnumerable<Bank_Configuration>  SelectBankConfiguration()
{
    using (EFEntities objEFEntities = new EFEntities())
    {                             
        var Result= from c in objEFEntities.Bank_Configuration 
                    select c;

        return Result.ToArray();
    }            

}

关于c# - 如何使用 Entity Framework 从 WCF 内部提取数据到客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14244622/

相关文章:

c# - IAsyncResult.AsyncWaitHandle 的使用

c# - WPF C# 如何使用 x :array 在 WPF 中的自定义模型类中绑定(bind)和设置列表

.net - 为什么 ConsoleTraceListener 不写入控制台?

javascript - 从 Jquery 或 JavaScript 调用时的 WCF 身份验证方法?

c# - 我可以通过 wcf 上传图像而不转换为字节数组吗

c# - WCF JSON POST 请求,单个字符串参数未绑定(bind)并返回 400

c# - Unity - 像音速一样运行一个循环而不会掉下来

c# - 在 View 或 Controller 中获取当前区域名称

.net - 从处理器C代码调用.NET应用程序的回调函数

c# - 使代码分析停止警告某个变量名