У меня есть следующее отображение FluentNHibernate:
public AssetMap()
{
Table("PRASSET");
Id(x => x.Id).Column("PRA_RECNUM").GeneratedBy.Sequence("PRA_RECNUM_GEN");
...fields mapped from PRASSET table
Join("PRSTOCK", m =>
{
m.Fetch.Join();
m.Optional();
m.KeyColumn("PRS_ASSRN");
...fields mapped from PRSTOCK table
});
}
Как подсказывает вызов m.Optional()
в бите Join
, может существовать или не быть соответствующая запись PRSTOCK
.
Проблема, с которой я сталкиваюсь, заключается в том, что когда я сохраняю экземпляр Asset
, который является грязным только в отношении одного из его отображенных PRASSET
свойств, и нет соответствующей записи PRSTOCK
, он вставляет одну ! Я решительно не хочу, чтобы это произошло, поскольку в большинстве случаев не должно быть соответствующей записи PRSTOCK
.
Есть ли в конфигурации сопоставления твик, который я могу попробовать? На этом этапе было бы достаточно просто предотвратить вставку записей в PRSTOCK
, но в идеале NHibernate не должен пытаться обновить или вставить PRSTOCK
, если только одно из свойств экземпляра Asset
, сопоставленное с PRSTOCK
, не загрязнено.