Свободное соединение nHibernate делает вставку в объединенную таблицу - PullRequest
5 голосов
/ 27 июля 2011

Я пытаюсь использовать объединение, чтобы получить одно свойство из другой таблицы, для которой нет сопоставления. Моя проблема заключается в том, что, когда я создаю новый экземпляр моей сопоставленной сущности и сохраняю ее, я получаю сообщение об ошибке при попытке вставить ее в мою неотображенную таблицу (она пытается вставить ноль в ненулевой столбец). Я думал, что использование .ReadOnly () остановит nhibernate от попытки вставки в мою непроверенную таблицу, но это, похоже, не работает.

Мое отображение выглядит так:

        // Join _UnMapped table with Mapped table to get the property
        Join("_UnMapped", x =>
            {
                x.Fetch.Join();
                x.KeyColumn("UnMappedFK");
                x.Map(y => y.Property, "Property")
                    .Not.Nullable()
                    .ReadOnly();
            });

Я думал о создании представления и сопоставлении с ним, чтобы получить это свойство, но если бы я мог, я бы предпочел сделать это через сопоставление. Будем очень благодарны за любую помощь (или объяснение того, как должно работать соединение)!

1 Ответ

8 голосов
/ 27 июля 2011

Использование x.Inverse();.

Здесь - некоторая документация по объединению.

...