2012-04-10 3 views
0

У меня есть вопрос, который есть «класс категории», содержит много класс продукта. но теперь у меня есть класс CategoryService, который будет реализовывать find IList при одном и том же перекрестке. Каждая категория содержит только верхние n продуктов, а не все продукты, что я должен делать? Дайте мне выбор, спасибо!nhibernate map категория содержит top n продукт

список кодов:

public class category 
{ 
    public int Id{get;set;} 
    public int Categoryname{get;set;} 
    public IList<Product> Products{get;set;} 
} 

public class Product 
{ 
    public int Id{get;set;} 
    public string ProductName{get;set;} 
    public Category Category{get;set;} 
    etc... 
} 

то есть обслуживание домена:

public class CategoryService 
{ 
    private ICategoryRepository categoryRepository; 

    public CategoryService(ICategoryRepository categoryRepository) 
    { 
    this.categoryRepository=categoryRepository; 
    } 

    public IList<Category> FindAll() 
    { 
    IList<Category> categories; 
    categories=categoryRepository.FindAll(); 

    //and now i need categoryRepository find all category ,and every category contains top n product, what should i do; 

    return categories; 
    } 
} 
+0

Что ваши пробовали до сих пор? Как выглядит ваш код? Помогите нам помочь вам. – Rippo

+0

Спасибо! Мой английский не очень хорош! – alien

+0

Хорошо, как вы хотите получить результаты? в классе 'DTO' или' Category.TopProducts'? Также, что вы подразумеваете под продуктами TOP, это продукты, которые сгруппированы BY? – Rippo

ответ

0
var count = // it's your top 
session.QueryOver<Category> 
.Fetch(category => category.Product).Eager 
.Take(count) 
.TransformUsing(Transformers.DistinctRootEntity) 
.List();