2016-04-29 1 views
0

私はWebアプリケーション(asp.net + SQL db)を持っており、それをnHibernateで相対的な成功=とマッピングしています。異なるテーブルのカスタムデータを持つnhibernate fillクラス

このWebは、(ERPシステムから)Oracleデータベースを読み取り、データを収集して表示しますが、このタスクにはnHibernateを使用していません。

私は複数のレポートを、独自のvb.netクラスを使用して作成しました。私はintrincatedクエリでいっぱいになります。 複数のOracleテーブルからデータを収集しています。私の質問は:

特定のhqlクエリを実行し、私のクエリのどの列を1つずつ指定するかを指定するカスタム方法(マッピングしないかもしれません)で私のvb.classを満たすことができますか?

=====================溶液でEDIT =====================

誰かが解決策を必要としている場合は、その解決策を例として掲載します。

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

結果トランスをhere(第2コードブロック参照)として使用する必要があります。

+0

ありがとう、フレデリック!私はそれらのことを知らなかったし、私はクラスとそれらと動作させるためにマッピングと戦っていた。 =) – Knave

+0

名前付きクエリ( ' 'タグのマッピングで書かれたクエリ、' '定義の外で)を使うと、マッピングでそれを行うことができるはずです。これには、セッションファクトリのブートストラップ(アプリケーションの使用の非常に早い段階)でクエリを検証するという追加の利点があります。 –

関連する問題