私はいくつかの冗長な主キーの問題を抱えています。Fluent NHibernate Duplicate Columns
私は多くのレポートを含む項目を持っています。私は以下のようにそれらをマップしました。私は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 [email protected];@p0 = 1266 [Type: Int32 (0)]
ありがとうございました。なぜそれは時々だけ起こるのですか?追加の列を生成しない他の関係もあります。これにより、挿入/更新クエリで問題が発生しますか?私はここでいくつかの投稿を見てきましたが、追加の列が生成されているため、マッピングによって挿入/更新が失敗していました。 – Origin
@Origin nhusersグループのスレッドは、私は多くのプロジェクトでNHibernateを使用していましたが、私はこの種の問題を抱えていませんでした(挿入または更新のために追加の列を生成する)。私はNHibernateが非常に安定した製品であると考えます。 –