次のデータモデルがあります。
Page
- Id // Pk
- Type // int
Section
- Id // Pk
- Page // Fk
Comment
- Id // Pk
- Section // Fk
- Date // DateTime
特定のページ (page.id = 2 および page.Type = 1 など) に関連付けられているすべてのコメントを制限時間内にクエリしようとしています。私はこのように試しました:
var criteria = session.CreateCriteria<Comment>()
.Add(Restrictions.Eq("Section.Page.Id", pageId))
.Add(Restrictions.Eq("Section.Page.Type", pageType))
.Add(Restrictions.Ge("Date", start))
.Add(Restrictions.Lt("Date", end));
ただし、「プロパティを解決できませんでした: Page of: TestNamespace.Comment」というエラーが表示されるため、これは失敗します。これは通常、マッピング エラーを示しますが、他のすべての場合に機能するため、エラーがクエリにあると信じがちです。
さらに悪いことに、場合によっては Comment.Section が null になることがあります (セクションにもページにも関連付けられていないコメントがあります)。その場合、私はそれらのコメントを無視したいと思います。
何かアドバイス ?
ありがとう!