如何使用NHibernate将一系列列绑定到一个集合中

时间:2009-07-20 18:06:16

标签: nhibernate nhibernate-mapping

相信我,当我说我明白这不是“正确”的方式来做到这一点。在大型复杂遗留系统问题下提交此文件。

我们有表格描述OCR的文件数据。每种文档类型都有自己的表。每个表都是根据它期望的字段类型生成的。所以有一个看起来有点像这样的架构:

Table: DocumentTypes
   Field: Id
   Field: Prefix

Table: DocumentFields
   Field: Id
   Field: DocId
   Field: Name

我们会生成如下表格:

Table: Type1_Data_Unit1000
   Field: Id
   Field: DocId
   Field: DocField_A_Data
   Field: DocField_A_Info1
   Field: DocField_A_Info2
   Field: DocField_Z_Data
   Field: DocField_Z_Info1
   Field: DocField_Z_Info2

NHibernate适用于我们所有其他数据,因为架构更加静态。

我的问题: 是否可以配置nhibernate加载其中一个DataTable并将一系列字段绑定到一个集合中?如果是,我应该从哪个界面开始寻找?

我的想法是建立一个类似于:

的课程
class FormData
{
   public virtual int Id {get;set;}
   public virtual int DocId {get;set;}
   public virtual int Id {get;set;}
   public virtual IList(Of FormFieldData) {get;private set;}
}

class FormFieldData
{
   public virtual int Id {get;set;}
   public virtual string Value {get;set;}
   public virtual int Info1 {get;set;}
   public virtual int Info2 {get;set;}
}

我已经看了一下“IInterceptor”,认为这是我应该先看的地方。但是在投入其中之前,我想要由SO人群来管理它。

谢谢!

1 个答案:

答案 0 :(得分:1)

如果架构不是静态的,那么nhibernate甚至很难创建查询 - 就我而言,拦截器无法帮助你。我会使用纯CreateSQLQuery并随后手动操作返回值。