加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – WCF DataServices和Mapped DTO

发布时间:2020-12-15 17:28:18 所属栏目:百科 来源:网络整理
导读:我有一个域模型服务,我想向客户端公开数据.服务具有典型的体系结构:数据库,ORM(EF),具有域模型的业务层. 我想使用WCF DataServices向客户端公开数据,但我无法将数据对象从域模型发送到客户端.我将使用DTO与客户端进行交互,并且我有dto =数据对象映射. DataS
我有一个域模型服务,我想向客户端公开数据.服务具有典型的体系结构:数据库,ORM(EF),具有域模型的业务层.

我想使用WCF DataServices向客户端公开数据,但我无法将数据对象从域模型发送到客户端.我将使用DTO与客户端进行交互,并且我有dto< =>数据对象映射.

DataServices有反射提供程序,在这种情况下看起来很好(让我们考虑只读方案).但反射提供者需要IQueryable< dto>要暴露的财产.这就是问题所在.所以我看到以下方法来解决它:

>加载所有域对象,将所有域对象映射到dtos并返回结果dtos.如果存在许多域对象,那真的很糟糕.
>创建“linq2dto”提供程序并生成动态对应的“linq2EF”查询,在查询实现时从db获取数据对象并执行映射.它听起来不错,但正如我所看到的,这是一项复杂的任务.

所以伙计们,我需要帮助.我不想写(并支持!)新的一个linq提供者.可能有某些“一般linq2anyware”实现我可以使用?

另一方面,我真的无法将数据对象暴露给客户端并使用DataServices EF提供程序.有没有一些简单的方法来实现这种映射?

解决方法

不幸的是,如果你真的开始使用DTO,你将需要承担执行查询树转换到EF可以使用的工作.这很可能会让您进入自定义提供商区域,这是您必须处理的另一个问题.

具体来说,对于查询树转换,您可能会查看类似于re-linq或IQ toolkit的内容.

我们可以在关于您为什么需要DTO的问题的评论中进行简短的对话吗?我认为如果他们能够理解这个细节,这个问题对其他人来说会更有用.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读