C# 使用NHibernate将行透视到属性/列中
使用NHibernate将下面的表结构建模到下面的“数据透视”域模型中的最佳方法是什么 映射属性是平凡的;它实际上是我不确定的从行到属性/虚拟列的轴心 数据库结构 属性表C# 使用NHibernate将行透视到属性/列中,c#,.net,nhibernate,fluent-nhibernate,nhibernate-mapping,C#,.net,Nhibernate,Fluent Nhibernate,Nhibernate Mapping,使用NHibernate将下面的表结构建模到下面的“数据透视”域模型中的最佳方法是什么 映射属性是平凡的;它实际上是我不确定的从行到属性/虚拟列的轴心 数据库结构 属性表 Id Name Type Attr1 Some Attribute 1 Bool Attr2 Some Attribute 2 Bool Attr3 Some Attribute 3 Bool Id AdId AttributeId Value 1
Id Name Type
Attr1 Some Attribute 1 Bool
Attr2 Some Attribute 2 Bool
Attr3 Some Attribute 3 Bool
Id AdId AttributeId Value
100 Ad1 Attr1 true
101 Ad1 Attr2 false
102 Ad1 Attr3 true
广告台
Id Name
Ad1 Some ad 1
属性表
Id Name Type
Attr1 Some Attribute 1 Bool
Attr2 Some Attribute 2 Bool
Attr3 Some Attribute 3 Bool
Id AdId AttributeId Value
100 Ad1 Attr1 true
101 Ad1 Attr2 false
102 Ad1 Attr3 true
所需的NHibernate对象模型
表结构不是一成不变的,但目标是属性不作为列存储在广告上。不同的广告类型将有不同的属性,但它们不会动态变化,即广告类型1将始终有10个属性,广告类型2将始终有5个属性,等等
首选原始NHibernate HBM答案,但流畅的映射是可以的最终我们决定使用不同的设计来消除这种不必要的复杂性
Firo关于NHibernate的IDictionary支持的观点是一个很好的观点,但是很可能是解决方案您是否考虑过
IDictionary
?NHibernate可以将对象序列化为2列,但我从未尝试过我认为这可能是我必须遵循的路线,但我不确定它是否能与上面的结构一起工作。当每个adtype的属性都已修复时,为什么不为每个adtype创建一个表来保存特定的属性?(每个类继承的表)