如何映射任何类型的属性

本文关键字:任何 类型 属性 映射 何映射 | 更新日期: 2023-09-27 18:16:55

我有一个这样的类:

public class Answer
{
    virtual public int Number { get; set; }
    virtual public object Value { get; set; }
}

Value属性类型为object,因为对于是/否问题,它将保存bool值,对于选择题,它将保存int值,对于开放问题,它将保存string值。

我打算在Microsoft SQL Server 2012表中持久化这样的类,作为Value存储在varbinary列中(不确定这是一个好主意)。

如何在nHibernate中映射这样的类?

提前感谢!

如何映射任何类型的属性

如果您真的只有三种可能的Value类型,请考虑创建四个不同的Answer类——一个基类(Answer)和三个子类(AnswerInt, AnswerString, answerool)。然后可以使用一种标准的映射技术——每个层次表或每个类表。