Bu soruyu gerçekten sormaktan korkuyorum, çünkü her şeyi kendime oldukça iğrenç buluyorum. Ancak, eski bir veritabanı ile ne yapacaksınız. Yukarıdaki render açıkça değilseFluent NHibernate Kompleks Kompozit Anahtar Eşleştirmesi
aşağıdaki üç tablo
Generator Alarm AlarmDescription
--------- ----- ----------------
Id Id
Id <- GensetId DescriptionText
EventTypeId -> AlarmCode
PanelId ----------------> PanelId
var, bir jeneratör ve bir AlarmDescription hem sahip bir Alarm var. Jeneratör, GensetId özelliği ile doğrudan eşlenebilir. AlarmDescription ayrıca Id özelliği doğru kolayca eşlenebilir olmalıdır? Ancak bu şekilde tasarlanmamıştı ve bunun yerine (AlarmCode, PanelId)
bir kompozit ile eşleştirilmiştir (not, aynı alan adını bile paylaşmazlar, verileri inceledikten sonra herhangi bir ilişki bulmak için uğraştıktan sonra bunu bulmuşlardır).
Peki, bunu Fluent NHibernate kullanarak nasıl eşlersiniz? Birkaç varyasyon denedim, ama başarısız oldum. Aşağıdaki gibi bir şey ideal olurdu ... ... ama sanırım böyle bir şey mutlaka direkt olarak kullanılabilir.
References(x => x.AlarmDescription)
.Column("AlarmCode", m => m.EventTypeId)
.Column("PanelId", m => m.Genset.PanelId)
Formüller de geldiğim sonuçtur, sadece bunu yapmak için daha güzel/daha büyülü bir yol olduğunu umuyordum. – shortstuffsushi
İlk başta, bunu haritalamanın bir yolu olabileceğini düşünmüyordum bile. Böyle bir durum için formül (veya db'yi değiştirmekten) kullanmaktan başka bir çözüm beklemem. –