nhibernate用来自不同表的自定义数据填充类

时间:2016-04-29 12:42:28

标签: vb.net nhibernate

我有一个Web应用程序(asp.net + SQL db),我用nHibernate映射它并且相对成功=)。

此网络读取Oracle数据库(来自ERP系统),从中收集并显示数据,但不使用nHibernate执行此任务。

我已经完成了几个报告,每个报告都有自己的vb.net类,我填充了内置的查询, 从一堆Oracle表中收集数据。所以我的问题是:

我可以执行特定的hql查询并以自定义方式填充我的vb.class(可能不映射它),逐个指定查询的哪一列填充每个属性?

=====================编辑解决方案=====================

如果有人需要解决方案,我会在一个例子中发布解决方案。

Public Class classExample
    Private pProperty1 As Decimal
    Private pProperty2 As String

    Public Property Property1() As Decimal
        Get
            Property1 = pProperty1
        End Get
        Set(ByVal Value As Decimal)
            pProperty1 = Value
        End Set
    End Property

    Public Property Property2() As String
        Get
            Property2 = pProperty2
        End Get
        Set(ByVal Value As String)
            pProperty2 = Value
        End Set
    End Property

    Public Overloads Function Load() As System.Collections.Generic.List(Of classExample)
        Using session As NHibernate.ISession = ISessionFactory.OpenSession()
            Dim strsql As String = "SELECT.... FROM...."
            Dim Query As NHibernate.IQuery = session.CreateSQLQuery(strsql)
            Query.SetResultTransformer(NHibernate.Transform.Transformers.AliasToBean(Of classExample))
            Return Query.List(Of classExample)()
        End Using
    End Function
End Class

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您需要将结果转换器用作here(请参阅第二个代码块)。