У меня есть следующая ситуация, которая при первом взгляде - это много-много случаев.Nhibernate xml сопоставление с таблицами отношений
TABLE TExam
(
IdExam
...
)
TABLE TExamContent
(
IdExam,
IdContent
)
TABLE TContent
(
IdContent,
...
)
Но мне нужен таблица TExamContent только потому, что таблица TContent это вложение всей системы, так что я не могу поставить внешний ключ TExam на нем.
Для этих таблиц у меня есть (или я хочу) следующие классы, но я не нуждаюсь в содержании, содержащем список экзаменов. На самом деле, у моего контента будет только один Экзамен (это обходное решение, которое я не могу изменить)
Как сопоставить эти таблицы с этими классами, чтобы у моего класса Экзамена есть Список содержимого, например?
public class Exam
{
public int IdExam{get;set;}
public IList<Content> ContentList { get; set; }
}
public class Content
{
IdContent,
...
}
Я думаю, что если я не могу этого сделать, мне нужно сделать следующее, не так ли?
public class Exam
{
public int IdExam{get;set;}
public IList<ExamContent> IdExam{get;set;}
}
public class ExamContent
{
public int IdExam {get;set;},
public int IdContent {get;set;}
}
public class Content{
public int IdContent,
...
}
В этом случае я хочу, чтобы мой класс ExamContent есть только ссылки на класс экзамен и содержание класса, а не его ключ, как следующее.
public class ExamContent
{
public Exam Exam {get;set;}
public Content Content {get;set;}
}
Как это сделать?
В настоящее время это мое отображение
<class name="MedicalCertificateContent" lazy="true" table="TExamContent">
<composite-id>
<key-property name="IdExam" type="Int32">
<column name="IdExam" not-null="true" precision="10" scale="0" sql-type="int" />
</key-property>
<key-property name="IdContent" type="Guid">
<column name="IdContent" not-null="true" sql-type="uniqueidentifier" />
</key-property>
</composite-id>
<many-to-one name="Content" class="Content" fetch="join" not-null="true" column="IdContent" lazy="proxy" />
<many-to-one name="Exam" class="Exam" fetch="join" not-null="true" column="IdContent" lazy="proxy"/>
</class>
</hibernate-mapping>
Проблема делает это в том, что мне нужно, чтобы сохранить экзамен, чтобы добавить содержимое позже. Я хочу создать свой экзамен, добавить контент и сохранить все сразу.