У меня есть таблица устаревших с составными ключами, которые сопоставлены с тремя другими таблицами, поскольку в этой таблице есть другие атрибуты, так как это не простая таблица сопоставления, я не могу использовать многие -to-many, чтобы отобразить это.nHibernate Composite Key Тип класса Несоответствие
Ниже то, что я сделал:
<class name="classA" table="A">
<composite-id name="ID" class="AKey">
<key-many-to-one name="Id_one" class="One" column="Id_one" />
<key-many-to-one name="Id_two" class="Two" column="Id_two" />
<key-many-to-one name="Id_three" class="Three" column="Id_three" />
</composite-id>
AKey это просто структура, которая содержит три идентификаторов, и Id_one, Id_two и Id_three все определяются как междунар в их соответствующем классе.
public struct Akey {
public int Id_one { get; set; }
public int Id_two { get; set; }
public int Id_three { get; set; }
}
Это компилируется нормально, но когда я пытаюсь запустить его, он дает мне сообщение об ошибке:
NHibernate.QueryException: Несоответствие типов в NHibernate.Criterion.SimpleExpression: ID ожидаемый тип AKEY, фактический тип System.Int32
Просьба сообщить, что я сделал неправильно или пропустил.
Спасибо!
Спасибо за ваш ответ! Последняя часть помогла мне решить мою проблему, теперь я могу, наконец, двигаться дальше! = P – Akey
Yah ... Я понял после того, как написал, что последний должен был первым! – anonymous