Гость
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / NHibernate свой тип коллекции / 8 сообщений из 8, страница 1 из 1
19.01.2012, 10:20
    #37621518
GFX
GFX
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NHibernate свой тип коллекции
Добрый день.
Имеется NHibernate 3.1
Хочется заюзать свой тип коллекции, который наследуется от BindingList<T>.
При попытке загрузить данные получаю ошибку:
Custom type does not implement UserCollectionType...
В инете есть примеры где свой тип коллекции реализует этот интерфейс IUserCollectionType и ObservableList<T>,
но эти примеры для WPF :( а мне нужно для winforms.

Как мне реализовать такую коллекцию?
Можете ссылки скинуть?

Спасибо
...
Рейтинг: 0 / 0
19.01.2012, 14:51
    #37622326
SolYUtor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NHibernate свой тип коллекции
GFX,

Чем принципиально коллекция для винформс отличается от коллекции для WPF?
...
Рейтинг: 0 / 0
19.01.2012, 17:55
    #37622854
GFX
GFX
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NHibernate свой тип коллекции
SolYUtorGFX,

Чем принципиально коллекция для винформс отличается от коллекции для WPF?

В winforms используются BindingList<T> для того чтобы коллекцию забиндить в тот же DataGridView
а в wpf используется ObservableList<T>.

З.Ы. EF 4.1 умеет мапить не только в IList<T> но и в собственно-реализованные коллекции.
...
Рейтинг: 0 / 0
19.01.2012, 18:29
    #37622933
SolYUtor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NHibernate свой тип коллекции
GFX,

Раз вы нашли, как работать с WPF, то для WinForms аналогчино. Реализуете свою свою CollectionTypeFactory, свои типы для Bag, Set и лист, в который реализуете интерфейс IBindingList, IRaiseItemChangedEvents, как это делает сам BindingList<T>:

Код: c#
1.
public class BindingList<T> : Collection<T>, IBindingList, IList, ICollection, IEnumerable, ICancelAddNew, IRaiseItemChangedEvents


И вся проблема.
...
Рейтинг: 0 / 0
19.01.2012, 18:45
    #37622955
GFX
GFX
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NHibernate свой тип коллекции
SolYUtorGFX,

Раз вы нашли, как работать с WPF, то для WinForms аналогчино. Реализуете свою свою CollectionTypeFactory, свои типы для Bag, Set и лист, в который реализуете интерфейс IBindingList, IRaiseItemChangedEvents, как это делает сам BindingList<T>:

Код: c#
1.
public class BindingList<T> : Collection<T>, IBindingList, IList, ICollection, IEnumerable, ICancelAddNew, IRaiseItemChangedEvents


И вся проблема.

Ура! значит это можно сделать. Вы меня обнадежили :)

Итак у меня есть свой лист MyBindingListView<T> : BindingList<T>, IBindingListView, IRaiseItemChangedEvents(который умеет сортироваться, поиск, а так же хранить удаленные айтемы)
Теперь мне нужен свой наследник от Bag и еще один наследник от Set?
Что из вышеперечисленного должно реализовывать IUserCollectionType?
Что такое CollectionTypeFactory?

Заранее спасибо за ответ.

Сильно не ругайтесь(за глупые вопросы), сегодня второй день, как юзаю NHibernate 3.
...
Рейтинг: 0 / 0
19.01.2012, 19:13
    #37623008
SolYUtor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NHibernate свой тип коллекции
GFXТеперь мне нужен свой наследник от Bag и еще один наследник от Set?
Да. И от листа тоже, т.к. перечисленные мною Bag, Set и List - это специальные коллекции Nhibernate, которые отслеживают изменения.
GFXЧто из вышеперечисленного должно реализовывать IUserCollectionType?
Это три отдельных класса, которые вам надо отнаследовать от CollectionType. Это часть системы типов NHibernate, которые он использует для сохранения и восстановления объектов.
GFXЧто такое CollectionTypeFactory?
Это класс, который NHibernate использует для создания экземляров. коллекций.

Законченный пример для wpf . Вам надо тоже самое, только реализовать в коллекциях IBindingList.
...
Рейтинг: 0 / 0
20.01.2012, 21:40
    #37624810
GFX
GFX
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NHibernate свой тип коллекции
SolYUtor,

Спасибо огромное!
Попробую реализовать для винформс.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
06.05.2013, 17:36
    #38249406
sanyock2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NHibernate свой тип коллекции
А в чем преимущество по сравнению, с использованием BindingSource?

т.е., например:
Grid->BindingSource->IList из родной NH коллекции?
...
Рейтинг: 0 / 0
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / NHibernate свой тип коллекции / 8 сообщений из 8, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]