一直以为没有使用FN进行存储过程的操作,这次因为后台首页想统计下数据,就利用了存储过程,但在使用中却发现FN目前还不支持存储过程(点击查看官方),没有办法,只能利用Fluent Configuration和HBM Configuration混合的映射方式。

这里要注意的是:

a)存储过程返回的数据,最好重新定义一个class,并且进行映射(可以使用FN或者HDM方式)

b)把新定义的class和映射的hbm文件,放到你的Model层,这是为了方便以后的管理。

c)映射存储过程的hdm文件名,以返回类型的名称命名。(如果返回的class命名为:DataResult,hbm的文件名为:DataResult.hbm.xml)

class:

 public class TravelDefaultData
{
public virtual int UserCount { get; set; } public virtual int OrderCount { get; set; } public virtual int LineCount { get; set; } public virtual int CrusiseCount { get; set; }
}

hbm:

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="Travel.Domain" namespace="Bus.Travel">
<sql-query name="GetTravelData">
<return class="TravelDefaultData">
<return-property column="usercount" name="UserCount" />
<return-property column="ordercount" name="OrderCount" />
<return-property column="linecount" name="LinCrusiseCount" />
</return> EXEC [GetTravelData] :userStartDate, :orderStartDate, :lineStartDate, :crusiesStartDate </sql-query>
</hibernate-mapping>

TravelDefaultData的映射,可以参考这里

最后记得配置下混合映射:

var db = Fluently.Configure()
.Database(GetSqlConfig())
.Mappings(a =>
{
a.FluentMappings.AddFromAssemblyOf<AreaMap>();
a.HbmMappings.AddClasses(typeof(TravelDefaultData));
});
return db.BuildSessionFactory();

配置以后就能按照NHibernate的方式进行使用了。

最新文章

  1. KVM 虚拟机命令行安装配置
  2. 【转载】Java垃圾回收内存清理相关(虚拟机书第三章),GC日志的理解,CPU时间、墙钟时间的介绍
  3. mysql show processlist命令 详解
  4. minicom installation and configuration on ubuntu
  5. javascript中的继承用法
  6. div+css的叫法是不正确的
  7. mysql同时update多行
  8. EntityFramewok Core 1.1连接MSSql数据库详解
  9. span&#160;右浮动折行&#160;解决ie6/7中span右浮动折行问题
  10. hdu 3829 Cat VS Dog 二分匹配 最大独立点集
  11. Java开源生鲜电商平台-通知模块设计与架构(源码可下载)
  12. 【数据结构】算法 LinkList (Reverse LinkedList) Java
  13. echarts画图时tooltip.formatter参数params不会更新(转载)
  14. Python数据分析-Day1-Numpy模块
  15. Linux基础六(网络管理)
  16. Python入门之面向对象之类继承与派生
  17. vs2013突然没有代码提示功能了。
  18. Golang把所有包括底层类库,输出到stderr的内容, 重新定向到一个日志文件里面?
  19. Laravel 学习记录
  20. PHP发红包程序限制红包的大小

热门文章

  1. Java Persistence with MyBatis 小结2
  2. unity, do nothing的state
  3. linux学习规划
  4. CakePHP不支持path/to路径,前后台无法方法
  5. apache虚拟主机设置泛域名的方法
  6. 2018.7.13vue知识小结
  7. vue 单元测试
  8. 跟着百度学PHP[13]-文件处理 文件后缀验证、设置随机文件名....
  9. nginx 的 autoindex on首页不显示的问题 按照下面几行要写上不然不行
  10. Streams:深入剖析Redis5.0全新数据结构