我创建了两个包含以下列的表 表名:TBL_Question 列:
QuestionId
QuestionTitle
QuestionBody
表名:TBL_Response 列:
ResponseId
QuestionId (FK)
ResponseBody
在此之后,我使用Entity Framework生成数据层,创建两个类:
要从ASP.Net WebAPI返回数据,我想返回DTO类,而不是实体生成器生成的类。 为此创建的两个DTO类是:
public class Question
{
public int QuestionId { get; set; }
public string QuestionTitle { get; set; }
public string QuestionBody { get; set; }
public List<Response> Responses { get; set; }
}
public class Response
{
public string ResponseId { get; set; }
public int QuestionId { get; set; }
public string ResponseBody { get; set; }
}
我在WebAPI中创建了一个方法,它以下列方式返回问题:
public IQueryable<DataList> GetDataLists()
{
var query = from a in siteDataRepository.DbContext.Tbl_Question
select new Question
{
QuestionId = a.QuestionId,
QuestionTitle = a.QuestionTitle,
QuestionBody=a.QuestionBody,
Responses = a.Tbl_Response.Select(c1 => new Response
{
ResponseId=c1.ResponseId,
QuestionId=c1.QuestionId,
ResponseBody=c1.ResponseBody
}).ToList(),
};
return siteDataRepository.Search(query);
}
此方法正常。查询是: 我如何控制,如果只提供$ expand选项,它将填充响应列表。有什么想法吗?