У меня возникли некоторые проблемы с первичным ключом.
У меня есть предмет, который содержит много отчетов. Я сопоставил их, как показано ниже. Я могу сделать Session.QueryOver(Of Item).List
, и не генерируются дополнительные столбцы Я также могу сделать Session.QueryOver(Of Report).List
и дополнительные столбцы не генерируются.
Однако, как только я пытаюсь пересмотреть отношение между Предметом и Отчетами, я получаю запрос SQL, показанный ниже. Кто-нибудь может сказать мне, почему? Заранее спасибо!
Сопоставление элементов:
Public Class ItemMapping
Inherits ClassMap(Of Item)
Public Sub New()
Table("Items")
Id(Function(x) x.ItemID)
HasMany(Function(x) x.Reports).KeyColumn("ItemID").Inverse().Cascade.All()
End Sub
End Class
Отображение отчета:
Public Class ReportMapping
Inherits ClassMap(Of Report)
Public Sub New()
Table("Reports")
Id(Function(x) x.ReportID)
References(Function(x) x.Item).Column("ItemID")
Map(Function(x) x.ReportName)
End Sub
End Class
Результат SQL:
SELECT repor0_.ItemID as ItemID1_,
repor0_.ReportID as Rep1_1_,
repor0_.ReportID as Rep1_4_0_,
repor0_.ReportName as Rep2_4_0_,
repor0_.ItemID as ItemID4_0_ FROM dbo.Reports repor0_ WHERE repor0_.ItemID=@p0;@p0 = 1266 [Type: Int32 (0)]