Я использую BindingSource, чтобы заполнить форму из списка NHibernate:Nhibernate мешок с BindingSource
public class Customer{
public string Name { get; set;}
public IList<Order> Orders { get; set;}
}
bindingSourceCustomer.DataSource = session.Query<Customer>().ToList();
bindingSourceOrder.DataSource = bindingSourceCustomer;
bindingSourceOrder.DataMember = "Orders";
теперь, когда я называю
bindingSourceOrder.AddNew();
генерируется исключение:
Значение «System.Object» не относится к типу «Model.Order» и не может быть , используемым в этой общей коллекции.
Теперь я изменил первую строку:
bindingSourceCustomer.DataSource = session.Query<Customer>().Select(customer =>
{
customer.Orders = customer.Orders.ToList();
return customer;
})
.ToList();
она работала, причина, почему, потому, что Nhibernate использует PersistentBag как реализация IList, которая, по-видимому не очень хорошо работает с источником связывания (Насколько я вижу).
Любое предложение о том, как заставить Nhibernate возвращать класс List или как решить проблему с источником привязки?