的EntityFramework与WCF - 如何返回EF实体 [英] EntityFramework with WCF - how to return EF entities

查看:899
本文介绍了的EntityFramework与WCF - 如何返回EF实体的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个WCF服务,它的工作原理,但它使用标准ADO.net来调用一些存储过程。

I have a WCF service which works, but it uses Standard ADO.net to call some stored procedures.

这是一个有点混乱和恼人的维护,因为任何存储的特效我打电话,我必须映射到DataContracts我必须手动创建并返回的JSON。

This is a bit messy and annoying to maintain because any stored procs i call, i have to map to DataContracts i have to create manually and then return as JSON.

我想WCF服务转换为返回的EntityFramework实体(所以我没有保持映射和手工创建datacontracts)。

I would like to convert the WCF service to return EntityFramework entities (so i dont have to keep mapping and creating datacontracts manually).

我有这样的事情在我的方法,如:

I have something like this in my method, eg:

public List<GetStuff_Result> GetStuff(string param1)
{
            ...

            StuffEntities ctx = new DataContracts.StuffEntities();

            List<GetStuff_Result> list = ctx.GetStuff(5463, "test").ToList();

            return list;
}

我已经安装在EDMX模型中的存储过程返回一个GetStuff_Result(我导入存储过程和所使用的创建复杂的功能)

I have setup the stored proc in the edmx model to return a GetStuff_Result (i imported the stored procedure and used the "create complex function")

我已经调试这一点,我得到2的结果列表中,但是当我的WCF方法是通过浏览器调用时,我得到一个消息在浏览器上(铬):

I have debugged this, and i get 2 results in the list, but when my WCF method is called via the browser, i get a message on the browser (chrome):

No data received
Unable to load the web page because the server sent no data.
Here are some suggestions:
Reload this web page later.
Error 324 (net::ERR_EMPTY_RESPONSE): The server closed the connection without sending any data. 

谁能告诉我如何解决这个问题,或至少它为什么发生?

Can anyone tell me how to fix this or at least why it's happening?

请注意(1):我也对点击的EDMX文件并禁用延迟加载

note (1): i have also right clicked on the edmx file and disabled lazy loading.

请注意(2):我已经建立了的DbContext发电机

note (2): i have setup a DbContext generator

注(3):我用WebMessageFormat.Json的响应格式

note (3): i use response format of WebMessageFormat.Json

感谢

推荐答案

其实我发现这样做的更好的办法

Actually i found a better way of doing this

我可以设置EDMX code发生器使用这一个: 的http://visualstudiogallery.msdn.microsoft.com/32c4660d-7e66-4c3a-b516-584f4f72b838

I can setup the edmx code generator to use this one: http://visualstudiogallery.msdn.microsoft.com/32c4660d-7e66-4c3a-b516-584f4f72b838

它的DbContext有WCF的支持(因此它产生已经有数据成员和DataContract属性的对象)

Its DbContext which has WCF support (so the objects it generates already have DataMember and DataContract properties)

这允许对象能够在服务而无需映射的EF对象的WCF对象像什么冷TOLD曾建议返回

This allows the objects to be returned in the service without the need to map EF objects to WCF objects like what COLD TOLD has suggested.

这篇关于的EntityFramework与WCF - 如何返回EF实体的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆