1

Я столкнулся со случаем, мы столкнулись дважды (не известно нам ..), и теперь обновления бросают «Параметр +1 не существует ошибки ".Сопоставление двух столбцов с тем же именем в nhibernate

Есть ли подходящий способ для достижения следующего соответствия?

(Пожалуйста, обратите внимание, что это наследственная база ...)

 References(x => x.Matter).Columns(new[] { "c_client", "c_matter" }).NotFound.Ignore(); 
     References(x => x.Client).Column("c_client"); 
+0

делает поле Клиент должен быть изменяемым в сущности? – Vadim

+0

Я не думаю, что они делают - если у вас есть лучшая альтернатива @diago, я бы хотел это услышать! –

ответ

1

Это недопустимое отображение. Вы не можете использовать один и тот же столбец дважды.

Мое предложение состоит в том, чтобы вы отображали c_matter и c_client как скалярные свойства и использовали запросы для получения соответствующих вопросов и клиентов.

+0

Вот что я должен был подумать! –

+0

На самом деле - по этой мысли, какие-либо предложения о том, как я могу получить IRepository до уровня сущности? –

+0

Наименее навязчивым является его передача. 'theEntity.GetMatter (репозиторий)' –

3

Возможно, вы можете отметить столбец «Клиент» только как прочитанный.

References(x => x.Matter).Columns(new[] { "c_client", "c_matter" }).NotFound.Ignore(); 
References(x => x.Client).Column("c_client").ReadOnly(); 

Это должно сделать это так NHiberante не пытается обновить его

+0

Спасибо за это - I буду держать его в умах на будущее, однако я буду придерживаться всего рефрактора, а DTO (как бы это случилось в любом случае!) +1 –

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