Связывание NHibernate и ASP.NET с IList <Products>? - PullRequest
0 голосов
/ 16 ноября 2010

Я недавно начал использовать Nhibernate, и я вполне доволен им, пока мне не нужно привязать элементы управления ASP.NET. У меня были серьезные проблемы с привязкой gridview к коллекции продуктов (IList). В конце концов я был вынужден исправить небольшую процедуру, чтобы преобразовать мой IList в DataTable. Как только он был в базе данных, он работал безупречно.

Теперь пришло время связать стандартный выпадающий список с 1 полем коллекции (IList) продуктов, но, похоже, у меня снова возникли проблемы.

Итак, это привело меня к выводу, что я, должно быть, делаю что-то не так?

Я не могу поверить, что невозможно привязать элементы управления ASP.NET к коллекции (IList) класса (в моем случае products), который возвращается из NHibernate.

Буду очень признателен за любые отзывы о ситуации ... Я в растерянности

Спасибо

Ответы [ 2 ]

0 голосов
/ 17 ноября 2010

Создайте объект List<T> или BindingList<T> и передайте объект IList из запроса в конструктор. Если объект IList не является общим списком, вы можете использовать LINQ, ilistObject.Cast<T>().ToList().

0 голосов
/ 16 ноября 2010

Проблема не в том, что вы не можете связать, потому что вы можете.Обычно такие проблемы возникают, когда вы привязываетесь в неподходящее время .

NHibernate поддерживает лень.Поэтому, если ваш запрос ленив, а свойства возвращаемых объектов ленивы, то значения не будут извлечены из базы данных, пока не будут ссылки на элементы и свойства.Если вы свяжете их с элементами управления в пользовательском интерфейсе, то значения не будут извлечены до тех пор, пока страница не будет отрисована.

В этот момент существует высокая вероятность того, что вы уже закрыли соединение с базой данных .

Простое решение - убедиться, что данные, к которым вы привязываетесь, , а не с отложенной загрузкой.

...