Можно ли сопоставить составной ключ в свободном режиме nhibernate, где половина ключа является идентификационным полем в базе данных?

StackOverflow https://stackoverflow.com/questions/1615647

Вопрос

Как говорится в вопросе, можно ли сопоставить составной ключ в свободном режиме nhibernate (или, я полагаю, не в свободном режиме), где одно из двух полей, используемых в составном файле, является идентификационным полем?

У меня есть таблица, в которой одна часть первичного ключа — это поле идентификатора, а другая — идентификатор арендатора.Это устаревшая база данных, в которой составной ключ повсюду используется в качестве внешних ключей, поэтому изменение базы данных будет весьма значительным.

Спасибо!

Это было полезно?

Решение

Если это действительно столбец идентификаторов, то он гарантированно будет уникальным для каждой записи, верно?

В этом случае вы можете полностью игнорировать идентификатор аренды для целей сопоставления.Поля вашей идентификации будут уникальными в вашей основной таблице, И ваши ссылки на внешние ключи будут содержать этот уникальный идентификатор, поэтому идентификатор аренды фактически не имеет значения.

NHibernate на самом деле не волнует, точно ли вы сопоставляете схему своей базы данных.Раньше я работал с устаревшими базами данных, где я определил уникальное ограничение для неключевого столбца, а затем сказал NHibernate использовать его в качестве первичного ключа - это работает и может аккуратно обойти все виды ужасных отношений составного ключа. отображения.

Думаю об этом.Противоречиво, но, вероятно, сработает.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top