1

ドメイン オブジェクトを返さないストアド プロシージャがいくつかあります (つまり、対応する SQL テーブル マッピングが hbm ファイルにあるオブジェクト)。代わりにカスタム オブジェクトを返します。

SqlDataReader を使用する場合のように手動で入力するのではなく、NHibernate を使用してこれらのストアド プロシージャを呼び出し、カスタム オブジェクトに出力を自動的に入力したいと考えています。

例を高く評価します。

ところで: 私は nhibernate 3.2 の新機能マッピングをコードで使用しています。

4

1 に答える 1

5

たぶん、次のことを試すことができます(https://stackoverflow.com/a/10513319/1236044から取得)

CreateSQLQuery を使用します。をに置き換えてみてselect...くださいExec MyStoredProc

重要な点は、入力しようとしている DTO のプロパティと同じ名前の列を選択またはストアド プロシージャで返すことです。

public class YourDto
{
    public int YourDtoId { get; set; }
    public string YourDtoTitle { get; set; }
}

then

var result = yourNhSession
    .CreateSQLQuery("select yourColumn1 as YourDtoId, yourColumn2 as YourDtoTitle from YOUR_TABLE")
    .SetResultTransformer(Transformers.AliasToBean<YourDto>())
    .List<YourDto>();
于 2013-02-07T12:55:11.293 に答える