使用与Nhibernate相同的存储库方法返回不同的Dto

时间:2014-09-27 18:52:44

标签: c# nhibernate

我有一个Web API请求一个GET方法可以返回基于相同参数的不同结果(Dtos)示例:

GET - http://localhost/books/searchAll?Detailed=true `
Returns DTO 1 ["Id":1,"Date": 01/01/2014]

GET - http://localhost/books/searchAll?Detailed=false `
Returns DTO 2 ["Id":1]

处理这种情况的最佳方法是什么:

我应该使用一个包含两个不同结果列表的Dto创建一个http响应:

Public Class ResultList
{
   Public List<Dto> DtoList1{get;set;}
   Public List<Dto2> DtoList2{get;set;}
}

或只有一个返回动态列表的dto列表

Public Class ResultList
{
  Public List<dynamic> DtoList{get;set;}
}

或其他解决方案?

此致

1 个答案:

答案 0 :(得分:1)

如果你要返回两个不同的资源(或类或类型),我肯定会选择两种不同的方法,但它们也可以提供两种不同的URL,比如说。搜索和搜索详细信息。

如果你返回相同的资源,但一次完整,另一部分,那么我将有一个方法,使用你建议的详细参数,但我会返回相同的dto类有时所有的属性机智值和其他只有它的最小属性值。毕竟你返回一个json对象,它可以有动态属性而没有任何问题。

这就是我的想法。