Я нашел коды ниже:
public class Basket
{
public Guid BasketId { get; set; }
public DateTime Date { get; set; }
public virtual ICollection<BasketItem> BasketItems { get; set; }
public Basket()
{
BasketItems = new List<BasketItem>();
}
}
Я не совсем понимаю, зачем нам ставить
public virtual ICollection<BasketItem> BasketItems { get; set; }
вместо
public virtual List<BasketItem> BasketItems { get; set; }
Одна из причин, по которой я могу думать, заключается в том, что когда этот класс унаследован, мы можем переопределить BasketItems с разными типами?
Какие еще причины для этого?