Мое понимание List vs IList и других коллекций довольно ограничено, поэтому мне нужно спросить:
Документация NHibernate говорит:
Обратите внимание, чтоNHibernate не поддерживает двунаправленные связи «один ко многим» с индексированной коллекцией (списком, картой или массивом) в качестве конца «много», вы должны использовать набор или суммирование.
реализация класса ниже уважать это ограничение?Другими словами;Достаточно ли объявить свойство как IList, в то же время инициализируя как конкретный список?Или мне нужно использовать другой тип коллекции?
А можно ли использовать конкретную реализацию любого контейнера, или это должен быть интерфейс?
Пример взят из FluentNHibernate учебник , поэтому я предполагаю, что это будетвсе будет в порядке, но я хотел бы понять это более глубоко, чем просто принять это на этой основе.
public class Store
{
public virtual int Id { get; private set; }
public virtual string Name { get; set; }
public virtual IList<Product> Products { get; set; }
public virtual IList<Employee> Staff { get; set; }
public Store()
{
Products = new List<Product>();
Staff = new List<Employee>();
}
public virtual void AddProduct(Product product)
{
product.StoresStockedIn.Add(this);
Products.Add(product);
}
public virtual void AddEmployee(Employee employee)
{
employee.Store = this;
Staff.Add(employee);
}
}