2012-04-23 16 views
0

我想要建立WCF服务来创建一个数据库表中的条目,并返回相同的数据作为响应服务的相同数据。WCF服务方法实现到具有多个参数的存储库

我正在使用EF与存储库模式来执行所有DataAccess工作。由于传递参数是安静的巨大列表(15+)。

复杂类型(DTO)是干净得多吗?或任何其他替代方案。

我在寻找更清洁,简单的实现......

更多详细信息...

1)创建与服务端和库侧之间共享的所有参数信息DTO对象。

Public class RecordDTO 
    { 
    public string param1; 
    public string param2; 
    ..... 
    public string param15; 

    } 

2)使用DTO对象从服务方法传递到储存库(两个项目应该能够访问DTO)

Repository.CreateRecord(RecordDTO myRecordObj) 

3)库接收该和解析数据和做各种数据访问的逻辑并返回返回的理解服务以及客户端的模型对象。

我只是在探索并试图确定这是否可行。

+0

你可以给我们一个你试图改进的代码的简要例子吗?在服务实现中,像CreateRecord(param1,............... param15)这样的方法的 – RQDQ 2012-04-23 20:36:26

+0

可以在服务实现和存储库端用共享复杂类型库(DTO)编写。 – sam 2012-04-23 20:45:23

+0

请编辑原始问题,并附上格式化的代码。评论中的代码难以阅读。 – RQDQ 2012-04-23 20:46:04

回答

0

您可以添加CreateRequest dto,并封装其中的所有参数。这是有很多原因,其中一些较好的是: - 更好的可读性 - 简单的方法签名 - 预防重大更改..

如果这些参数必须与多个资源库的方法保存卡列斯你可以在交易中添加的范围服务方法的实现。

我想所有这些参数都归属于这个CreateRecord操作(一个事务)。如果他们不这样做,你可以把它分成多种服务方法。

+0

这是单一服务方法。但CreateRequest dto只能用于一种方式,即(服务到存储库)。 Response对象将是POCO实体(EF代码第一个模型对象)。 – sam 2012-04-23 21:21:53