是否可以使用NHibernate调用存储过程,它返回自定义对象而不是域对象?

Bai*_*aig 1 nhibernate stored-procedures nhibernate-mapping

我有几个不返回域对象的存储过程(即;在hbm文件中具有相应sql表映射的对象); 但是返回自定义对象.

我想使用NHibernate调用这些存储过程并自动用输出填充我的自定义对象,而不是像我使用SqlDataReader那样手动填充它们.

应该高度赞赏一个例子.

BTW:我通过代码使用nhibernate 3.2新功能映射.

jbl*_*jbl 5

也许您可以尝试以下(取自/sf/answers/735932361/)

它使用CreateSQLQuery.您可以尝试替换select...使用Exec MyStoredProc

关键是让select或stored过程返回列的名称与您尝试填充的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>();
Run Code Online (Sandbox Code Playgroud)