我正在尝试设置WCF服务以在数据库表中创建一个条目,并将其与一堆相关数据一起作为服务响应返回。
我正在使用EF with Repository Pattern来完成所有DataAccess工作。由于传递参数是安静的巨大列表(15+)。
复杂类型(DTO)是这种方式更干净的方式吗?或任何其他替代方案。
我正在寻找更简洁的实施......
更多细节......
1)使用服务端和存储库端共享的所有参数信息创建DTO对象。
Public class RecordDTO
{
public string param1;
public string param2;
.....
public string param15;
}
2)使用DTO对象从Service方法传递到Repository(两个项目都应该有权访问DTo)
Repository.CreateRecord(RecordDTO myRecordObj)
3)存储库接收到并解析数据并执行各种DataAccess逻辑并返回传回的Model对象,该对象了解服务以及Client。
我正在探索并试图了解这是否可行。
答案 0 :(得分:0)
您可以添加CreateRequest dto,并封装其中的所有参数。这有很多原因,其中一些是: - 更好的可读性 - 更简单的方法签名 - 防止发生变化..
如果必须使用多个存储库方法calles保存这些参数,则可以在服务方法实现中添加事务范围。
我认为所有这些参数在逻辑上属于此CreateRecord操作(一个事务)。如果他们不这样做,您可以将其拆分为多种服务方式..