public class Category
{
public virtual int Id { set; get; }
public virtual string Name { set; get; }
public virtual int CategoryOrder { set; get; }
public virtual IEnumerable<News> LatestNews { set; get; }
}
public sealed class CategoryMap :ClassMap<Category>
{
public CategoryMap()
{
LazyLoad();
Id(x => x.Id);
Map(x => x.Name);
Map(x => x.CategoryOrder);
HasMany(x => x.LatestNews);
}
}
IRepository<Category> newsRepo = new NHibernateRepository<Category>();
using(var session = newsRepo.GetSessionFactory().OpenSession())
using(var transaction = session.BeginTransaction())
{
var result = session.Query<Category>().OrderBy(x => x.CategoryOrder);
transaction.Commit();
}
カテゴリごとに(1つだけ)ニュースを表示したいこのカテゴリクラスがあります。これは正しいマッピングですか? または私はそれを変更する必要がありますMap
これを実行すると、カテゴリごとにすべてのニュースが取得されます。しかし、カテゴリごとに最新のニュースが必要です (1 つだけ)。クエリを実行すると、最新のニュースを取得できますNews.DateUpdated
。
カテゴリごとに 1 つのニュースを取得するには、クエリをどのように変更すればよいですか?
または、ニュースの一部を入手するにはどうすればよいですか? 例: クエリできるニュースの数を制限しますか?