У меня есть иерархический список категорий с объектами категории
public class Category
{
private int? ParentId = -1;
private Category _Parent = null;
public Category Parent
{
get
{
if (_Parent != null)
{
return _Parent;
}
if (this.ParentId.HasValue)
{
ICategoryRepository repo = new CategoryRepository();
var data = repo.Get(this.ParentId.Value);
_Parent = data;
}
return _Parent;
}
set
{
_Parent = null;
if (value == null)
{
ParentId = null;
}
else
{
ParentId = value.Id;
}
}
}
Каждая категория имеет свойство Parent, которое лениво загружает свою родительскую категорию.
Исходная категория загружается с использованием интерфейса IRepository, поэтому мне никогда не придется создавать новый экземпляр репозитория на бизнес-уровне, они предоставляются на уровне приложения через внедрение зависимостей с использованием Unity, ninject и т. Д.
Но здесь я вижу случай, когда мне нужно создать экземпляр хранилища из бизнес-уровня. Как бы я изменил этот дизайн?