我有以下实体(直接映射到数据库表):
public class SurveyQuestion
{
public int SurveyQuestionID { get; set; }
public string QuestionText { get; set; }
public DateTime QuestionDate { get; set; }
public List<Answer> Answers { get; set; }
}
public class Answer
{
public int AnswerID { get; set; }
public int SurveyQuestionID { get; set; }
}
我想执行一个返回以下内容的查询(为了清楚起见,这里表示为一个类,因为我有这个类可以从我的许多失败尝试之一中复制/粘贴):
public class SurveySearchItem
{
public int SurveyQuestionID { get; set; }
public string QuestionText { get; set; }
public int AnswerCount { get; set; }
}
我想让这个查询过滤日期,按计数排序,跳过 X 行,并取 X 行,所有这些都在 sql server 端。我试图避免为这个内联编写 proc 或只使用 sql,因为在其他任何地方我都能够仅使用 nhibernate 的 queryover 或条件的东西来完成我需要的一切。
我已经搜索了许多有希望的链接(大多数在 SO 上)并尝试了许多不同的东西,但我似乎无法找到实现这一目标的方法。如果不自己编写 sql (或者可能创建一个映射到它的实体的搜索视图;我也考虑过),这不是一件可以完成的事情,我可以接受。似乎应该有一种方法可以使用 QueryOver 或其他东西来做到这一点,而我可能只是太菜鸟了,无法弄清楚。