Я сопоставляю устаревшую базу данных с nhibernate и у меня возникают некоторые проблемы с сопоставлением отношений.
Два класса выглядят так
public class Questionnaire
{
public int Id {get; set;}
public string FormCode {get; set;}
public IList<Question> Questions {get; set;}
}
public class Question
{
public int Id{get; set;}
public Questionnaire Questionnaire {get;set;}
public string QuestionText{get;set;}
}
к таблицам, подобным этому
Questionnaire Table
Id int
FormCode varchar(100)
Question Table
Id int
FormCode varchar(100)
QuestionText varchar(max)
Отношения между двумя таблицами, являющимися столбцом formcode.
Мое текущее отображение выглядит так
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" namespace="QDesign.Core.Models" assembly="QDesign.Core">
<class name="Questionnaire" table="_questionnaire_list">
<id column="Id" name="Id">
<generator class="identity"/>
</id>
<property name="FormCode" column="FormCode"/>
<bag name="Questions" >
<key foreign-key="FormCode" property-ref="FormCode" />
<one-to-many class="Question" />
</bag>
</class>
</hibernate-mapping>
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" namespace="QDesign.Core.Models" assembly="QDesign.Core">
<class name="Question" table="_questionnaire_items">
<id column="ID" name="Id" unsaved-value="-1">
<generator class="identity" />
</id>
<property name="QuestionText" column="QuestionText" />
</class>
</hibernate-mapping>
Когда я запускаю отображение, я получаю несоответствие типа Идентификатора, предполагая, что оно пытается вставить код формы в идентификатор вопроса. К сожалению, я не могу изменить структуру таблицы и затрудняюсь понять, как это отобразить, и любая помощь будет принята с благодарностью.