Модель предметной области, над которой я работаю, имеет корневой агрегат и дочерние сущности. Что-то вроде следующего кода:
class Order
{
IList<OrderLine> Lines {get;set;}
}
class OrderLine
{
}
Теперь я хочу, чтобы мой Орден контролировал линии. Что-то такое:
class Order
{
OrderLine[] Lines {get;}
void AddLine(OrderLine line);
}
На данный момент мы используем следующий шаблон:
class Order
{
private IList<OrderLine> lines = new List<OrderLine>();
OrderLine[] Lines {get {return this.lines;}}
void AddLine(OrderLine line)
{
this.orders.Add(line);
{
}
NHibernate отображается непосредственно в поле строк.
Теперь вопросы...
- Что вы практикуете в таких ситуациях?
- Кто-нибудь использует методы: public IEnumerable GetLines()
- Что вы используете в качестве возвращаемого типа для свойства? Может быть ReadOnlyCollection или IEnumerable;
- Может быть, это не лучшее место, чтобы спросить? Предложите пожалуйста.
Обновление: кажется, что IEnumerable побеждает, однако решение все еще не идеально...