以下の方法を理解するのが難しいです。指定されたListプロパティのトップ(x)エンティティをフェッチするためのNHibernateクエリ
public class Post
{
...
public IList<Comment> Comments
...
}
public class Comment
{
public DateTime CommentDate
... Some other properties but no reference to Post...
}
がどのように私は日付の降順で注文した特定のポストのための唯一の最初の10件のコメントを取得するためにクエリを記述することができます
は、以下のクラスを考えると?
Post
からComment
からの参照が存在しないので、私はComment
に照会することはできません、私はPost
に照会する必要がありますが、私のすべてのクエリがPost
を返すように見える、と投影で私の試みは失敗しています。
Post
を参照するプロパティを追加することはできません。実際には私のドメインモデルではありません。したがって、私は立ち往生しています。
私は何かが明らかに欠けていないことを願っています。
編集:
これは
var query = (from comment in Session.Query<Comment>() orderby comment.CommentDate
where comment.Post == some Post select comment).Take(10);
を投稿するコメントからの参照があったが、そこではない場合、私が欲しいものを私に与えてしまうので、私は上の同等のクエリを探しています10のコメントのリストを返す投稿。
Linq経由でクエリを実行できるのであれば、それは私が望むものですが、QueryOverを使用すれば十分です。
代わりに、私のドメインモデルの代わりにその参照が存在する可能性があります。
苦労しているコードを投稿すると、質問に答える方法がわかります(例:HQL、Criteria、QueryOverなど)。 – csano