У меня есть таблица Продукт и у меня есть таблица StorageHistory.Создание объекта NHibernate и инициализация набора
Теперь продукт содержит ссылку на StorageHistory в его отображении
<set name="StorageHistories" lazy="false">
<key column="ProductId" />
<one-to-many class="StorageHistory" />
</set>
И это работает, когда я получить объект из ОРМА я получаю пустую Исеть.
Что дает мне головная боль, так это, как построить объект в первую очередь. Когда я делаю следующее:
var product = new Product();
session.Save(product);
в product.StorageHistories свойство NULL, и я получаю NullReferenceException. Итак, как мне добавить элементы в эту коллекцию, или я должен пойти, чтобы добавить элементы StorageHistory непосредственно в БД?
Хмм .. это приводит к проблеме, что я буду называть виртуального члена из конструктора. Что может вызвать проблемы: http://blogs.msdn.com/brada/archive/2004/08/12/213951.aspx – Tigraine
Лишает меня проблему, которая мне нужна для постоянной * StorageHistory *, прежде чем я действительно сохраню * Продукт * , что приводит к проблеме, что * StorageHistory * имеет Fk to * Product *, который не может быть нулевым. Поэтому мне придется перенести Продукт, сохранить Storagehistory, обновить Продукт, чтобы вставить продукт w. история. – Tigraine
переключите ассоциацию. Так вы можете сделать: history.Product = продукт. session.Save (история); session.Refresh (product); – Quibblesome