Унаследованная база данных, которую я унаследовал, содержит следующие таблицы:
Teams (
TeamId INT PRIMARY KEY,
Name VARCHAR(30)
)
Players (
PlayerId INT PRIMARY KEY,
Team VARCHAR(30)
)
Внешний ключ в таблице игроков относится к названию команды, а не к идентификатору команды.
Я попытался сопоставить команду с игроками, используя сумку:
<bag name="Players">
<key column="Team" foreign-key="Name" />
<one-to-many class="DataTransfer.Player, DataTransfer" />
</bag>
Но я получаю SqlException:
Ошибка преобразования при преобразовании значения varchar 'Arsenal' в тип данных int
Мне удалось использовать сумку для отображения строковых внешних ключей в других областях, но в этих случаях внешний ключ ссылался на первичный ключ родительской таблицы.
Редактировать: я использую NHibernate 2.0.1