次のエンティティがあります (DB テーブルに直接マップされます)。
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; }
}
次を返すクエリを実行したいと思います(ここでは明確にするためにクラスとして表現し、多くの失敗した試みの1つからコピー/貼り付けするクラスがあるため):
public class SurveySearchItem
{
public int SurveyQuestionID { get; set; }
public string QuestionText { get; set; }
public int AnswerCount { get; set; }
}
このクエリで、日付でフィルタリングし、カウントで並べ替え、X 行をスキップし、X 行をすべて SQL サーバー側で取得したいと考えています。私はprocを書いたり、このインラインのSQLを持ったりすることを避けようとしています.他の場所では、nhibernateのクエリオーバーまたは基準を使用するだけで必要なことをすべて行うことができました.
私は多くの有望なリンク (ほとんどは SO にあります) を検索し、さまざまなことを試しましたが、これを実現する方法が見つからないようです。自分でSQLを書かずにできることではない場合(または、エンティティがマップされた検索ビューを作成する可能性があります。私もそれを検討しました)、それで問題ありません。QueryOver などを使用してこれを行う方法が必要なように思えますが、私はおそらく初心者すぎてそれを理解できません。