У меня есть стандартная сущность домена Category, у которой есть соответствующие дочерние элементы.т.е. категория и соответствующие ей подкатегории.Это показано ниже.Действительно стандартные вещи.
public class Category : Entity
{
private IesiCollections.ISet<Category> _children;
public Category()
{
_children = new HashedSet<Category>();
}
public virtual string Name { get; set; }
public virtual string Description { get; set; }
public virtual Category Parent { get; private set; }
public virtual ICollection<Category> Children { get { return _children; } }
public virtual bool AddCategory(Category category)
{
if (category != null && _children.Add(category))
{
category.SetParent(this);
return true;
}
return false;
}
public virtual bool RemoveCategory(Category category)
{
if (category != null && _children.Remove(category))
{
category.SetParent(null);
return true;
}
return false;
}
}
Я использую профилировщик NHibernate, чтобы убедиться, что все работает оптимально.Однако, когда я подхожу к удалению подкатегории, вызывая метод «RemoveCategory» и передавая категорию, он должен получить доступ к базовой коллекции с именем «_children», которая инициирует ленивую загрузку коллекции «_children».
Это вызывает предупреждение «Неограниченный набор результатов» в NHProf, что имеет смысл, поскольку мы не указали ограничение.Это загрузит всю коллекцию.Я хотел бы указать ограничение, поскольку эта коллекция потенциально может стать довольно большой.
Я посмотрел пример (показанный ниже) на веб-сайте nhprof относительно неограниченных результатов, но я не вижу, как его использовать.
var order = session.Get(orderId);
var orderLines = session.CreateFilter(order.OrderLines, "")
.SetFirstResult(0)
.SetMaxResults(25)
.List();
DoSomethingWithOrderLines(orderLines);
Это кажется полезным, когда мы отображаем данные, но я хочу обновить свою сущность и в конечном итоге сохранить ее.Любые идеи о том, как я могу указать ограничение на ленивую загрузку коллекции?
С уважением
Мухаммед