Я новичок в NHibernate, и у меня есть задача улучшить проект с помощью существующей реализации. Текущий дизайн прост, как в «Первом проекте»:
store(1)->(many)Employee
Теперь я хочу сделать это:
store(1)->(many)Employee AND
Empoyee(1)->(many)Child
Повторная реализация логики сопоставления от store-Employee к Employee-Child не работает.
Пытался найти что-то похожее в сети, но не повезло.
Любой совет по поводу сопоставления очень ценится.
Спасибо
@ MeckLey: Большое спасибо
для ответа
- Я пытаюсь проверить отображение, используя примеры постоянных спецификаций ... в псевдокоде я делаю что-то вроде:
new PersistenceSpecification<Child>(_session, new CustomEqualityComparerChild())
.CheckProperty(c => c.Name, "Child1Name")
--other Child prperties--
.CheckReference(c => c.Employee, new Employee{
Store = new Store{--store properties--},
--other Employee Properties--
});
Внешний ключ. В столбцы, которые не должны иметь значение NULL, вставляются значения NULL. Я пытаюсь сделать тест, чтобы все было создано в правильном порядке:
Store->Employee->Child
.. но я терплю неудачу
@ Мекли, ладно, вот реальная вещь ... store - это «ReturnOrder», «Employee» - это «ReturnOrderLineItem», а «Chlid» - это «ReturnOrderReplacementItem»
Классы следуют точной структуре «FirstExample», а сопоставления выглядят следующим образом:
public ReturnOrderMap()
{
Id(x => x.Id);
Map(x => x.OrderTrackingNumber);
Map(x => x.UserId);
HasMany(x => x.ReturnOrderLineItems).Inverse().Cascade.AllDeleteOrphan();
}
public ReturnOrderLineItemMap()
{
Id(x => x.Id);
Map(x => x.Sku);
Map(x => x.Status);
Map(x => x.Comments);
HasMany(x => x.ReturnOrderReplacementItems).Inverse().Cascade.AllDeleteOrphan();
References(x => x.ReturnOrder);
}
public ReturnOrderReplacementItemMap()
{
Id(x => x.Id);
Map(x => x.Quantity);
Map(x => x.Size);
References(x => x.ReturnOrderLineItem);
}
Я пропущу тесты Mapping и попробую посмотреть, действительно ли это работает, может быть, вы не можете протестировать что-то подобное с помощью PesristenceSpecification ..