2011-02-01 5 views
1

Я учусь (свободный) NHibernate, и текущая задача состоит в том, чтобы понять, как писать Хранилища и DATASERVICE классы. Если я получил граф объектов и были внесены изменения; И к коллекции корневых объектов, и к детским коллекциям; некоторые удалены, некоторые добавлены, некоторые обновлены. Могу ли я просто выбросить весь этот объект в сеанс .SaveOrUpdate?NHibernate хранилище SaveOrUpdate графа объектов

Это то, что я сейчас делаю, и это дает мне несколько различных исключений. Мне просто нужно знать, какие шаги мне нужно предпринять, чтобы сделать это правильно? Нужно ли мне развернуть и сохранить каждую дочернюю коллекцию отдельно? Или даже каждый дочерний объект?

Было бы очень полезно с некоторыми простыми примерами по этому вопросу.

ответ

1

Есть множество отличных примеров для Googled, но Getting Started area at NHForge.org - отличное место для начала. Попробуйте выполнить поиск каскада NHibernate или каскада FluentNHibernate.

Чтобы ответить на ваш вопрос, вы должны убедиться, что вы включили соответствующий каскадный тип свойств в ваших сопоставлениях или (по моему предпочтению) в вашей конфигурации NHibernate с помощью FluentNH's conventions. После того, как это настроено, вы должны иметь возможность SaveOrUpdate() объекта верхнего уровня, а удалять/обновлять/создавать все будут перенесены в базу данных.

+0

Спасибо! Да, я использую каскад, я просто не уверен, обрабатывает ли он все эти изменения в одном вызове. Но тогда мои проблемы должны быть разного происхождения. Хорошо, что вы упоминаете соглашения, те, о которых я еще не читал. – bretddog

+0

ссылки оба 404'ing – hanzolo

Смежные вопросы