我认为这是一个简单的问题,在谷歌中只有几分钟,我得到了解决方案等。但实际上,我没有发现什么特别的。
所以我得到了一个struct(或类什么)和一个类,其中每个字段都有这样的结构类型。我想使用模型在我的数据库中创建/使用表,其中每个字段都有类型为struct的类型。
例如struct
就在这里
public class myStruct
{
public float value;
public string description;
}
这里是我想要使用的模型
public class FieldSummaryRow
{
public int Id{ get; set }
public myStruct A { get; set; }
public myStruct B { get; set; }
public myStruct C { get; set; }
public class FieldSummaryMap: ClassMap<FieldSummaryRow>
{
public FieldSummaryMap()
{
Id(x => x.Id);
Map (x=>x.A);
Map (x=>x.B);
Map (x=>x.C);
}
}
}
但是我认为它不会像那样工作,因为myStruct
未正确映射。
那我该怎么解决这个问题呢?
或者我之前以同样的方式使用地图myStruct
?
答案 0 :(得分:2)
从NHibernate的角度来看,我们应该将您的结构视为<component>
。这意味着 myStruct A
必须有 valueA 和 descriptionA 列,B
和{ {1}}。
参见文档:
这样的C
myStruct 最终会像这个xml片段一样映射:
<component>
正如我们在这里看到的那样(Adam Bar的文章 - 将下半部分视为Fluent映射的一个很好的总结)
我们需要这个:
<class name="FieldSummaryRow" table="...>
....
<component class="myStruct" name="A">
<property name="value" column="valueA" access="field" />
<property name="description" column="descriptionA" access="field" />
</component>
<component class="myStruct" name="B">
...
</class>