Fluent Nhibernate and Stored Procedures

简介: DROP TABLE DepartmentGOCREATE TABLE Department( Id INT IDENTITY(1,1) PRIMARY KEY, DepName VARCHAR(50), PhoneNumber VARCHAR(50))GOCREATE PROCEDURE [dbo].[GetDepartmentId] ( @Id INT )AS
DROP TABLE Department
GO
CREATE TABLE Department
(
	Id  INT IDENTITY(1,1) PRIMARY KEY,
	DepName VARCHAR(50),
	PhoneNumber VARCHAR(50)
)
GO

CREATE PROCEDURE [dbo].[GetDepartmentId]
 ( @Id INT )
AS 
    BEGIN
        SELECT  *
        FROM    Department
                
        WHERE   Department.Id= @Id
    END
GO

EXEC GetDepartmentId 1
GO
 /// <summary>
        /// 存储过程 涂聚文测试成功
        /// </summary>
        /// <returns></returns>
        static ISessionFactory testSession()
        {
           // var config = MsSqlConfiguration.MsSql2005.ConnectionString(@"Server=LF-WEN\GEOVINDU;initial catalog=NHibernateSimpleDemo;User ID=sa;Password=520;").ShowSql();
           // var db = Fluently.Configure()
           //     .Database(config)
           //     .Mappings(a =>
           //     {
           //         a.FluentMappings.AddFromAssemblyOf<Form1>();
           //         a.HbmMappings.AddClasses(typeof(Department));
           //     });
           // db.BuildConfiguration();
           //return db.BuildSessionFactory();

            ISessionFactory isessionFactory = Fluently.Configure()
               .Database(MsSqlConfiguration.MsSql2005
               .ConnectionString(@"Server=GEOVINDU-PC\GEOVIN;initial catalog=NHibernateSimpleDemo;User ID=sa;Password=520;").ShowSql())
                            .Mappings(m => m
                            //.FluentMappings.PersistenceModel
                            //.FluentMappings.AddFromAssembly();                
                            .FluentMappings.AddFromAssembly(Assembly.GetExecutingAssembly())) //用法注意              
               //.Mappings(m => m
               //.FluentMappings.AddFromAssemblyOf<Form1>())
               //.Mappings(m => m
               //.HbmMappings.AddFromAssemblyOf<Department>())
               //.BuildConfiguration()
               .BuildSessionFactory();
            return isessionFactory;
        }

        /// <summary>
        /// 存储过程
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button3_Click(object sender, EventArgs e)
        {
            try
            {
                using (var exc = testSession())
                {
                    using (var st = exc.OpenSession())
                    {
                        if (!object.Equals(st, null))
                        {
                            //1
                            string sql = @"exec GetDepartmentId @Id=:Id";// @"exec GetDepartmentId :Id";
                            IQuery query = st.CreateSQLQuery(sql)  //CreateSQLQuery(sql) //GetNamedQuery("GetDepartmentId")
                                //.SetInt32("Id", 1)
                                   .SetParameter("Id", 1)
                                   .SetResultTransformer(
                                    Transformers.AliasToBean(typeof(Department)));
                                    //.List<Department>(); 
                             


                            var clients = query.UniqueResult();// query.List<Department>().ToList(); //不能强制转化

                            //IList<Department> result = query.List<Department>(); //不是泛值中的集合
                            Department dep=new Department();
                            dep = (Department)clients; //无法将类型为“System.Object[]”的对象强制转换为类型
                            //2
                            //var clients = st.GetNamedQuery("GetDepartmentId")
                            //        .SetParameter("Id", 1)
                            //        .SetResultTransformer(Transformers.AliasToBean(typeof(Department)))
                            //        .List<Department>().ToList();
                            MessageBox.Show(dep.DepName);
                        }
                    }
                }


目录
相关文章
|
边缘计算 安全 网络安全
年度创新产品!阿里云SASE零信任办公平台
从数据中心转向“数据”为中心的安全接入
年度创新产品!阿里云SASE零信任办公平台
|
存储 小程序 Unix
《操作系统真象还原》——0.28 MBR、EBR、DBR和OBR各是什么
MBR和EBR是分区工具创建维护的,不属于操作系统管理的范围,因此操作系统不可以往里面写东西,注意这里所说的是“不可以”,其实操作系统是有能力读写任何地址的,只是如果这样做的话会破坏“系统控制权接力赛”所使用的数据,下次开机后就无法启动了。
4081 0
|
前端开发
利用AIGC快速自动生成思维导图
利用AIGC快速自动生成思维导图
572 0
|
Cloud Native
《初识宜搭低代码》
本文主要介绍了我从第一次认识宜搭低代码到考过《低代码开发师》初级、中级和高级认证,以及参加低代码创新大赛第一届、第二届获奖的事情,其中有很多曾经的聊天截图,如今整理成册,留作纪念,同时希望也能帮助到想要考试认证《低代码开发师》的小伙伴们。最后有考试路径。
1578 0
《初识宜搭低代码》
|
固态存储 iOS开发 MacOS
Mac mini--使用外置SSD启动系统
内置机械磁盘的mac mini如何使用外置SSD磁盘启动,
4250 0
Mac mini--使用外置SSD启动系统
|
数据采集 存储 大数据
阿里云StreamCompute流计算架构
阿里云流计算全流程系统架构,主要包含:数据采集,流数据,流计算,数据源,数据消费这些过程。
949 0
阿里云StreamCompute流计算架构
|
NoSQL 数据库连接 API
基于Mongodb实现商品管理系统之查询所有商品信息编写讲解|学习笔记
快速学习基于 Mongodb 实现商品管理系统之查询所有商品信息编写讲解
|
资源调度 前端开发 JavaScript
wangEditor富文本编辑器安装与入门
wangEditor富文本编辑器安装与入门
842 0
|
SQL 分布式计算 资源调度
EB级计算平台调度系统伏羲 DAG 2.0: 构建更动态更灵活的分布式计算生态
伏羲(Fuxi)是十年前创立飞天平台时的三大服务之一(分布式存储 Pangu,分布式计算 MaxCompute(内部代号ODPS),分布式调度 Fuxi),过去十年来,伏羲在技术能力上每年都有新的进展和突破,2013年5K,2015年Sortbenchmark世界冠军,2017年超大规模离在/在离线混部能力,2019年的 Yugong 发布并且论文被VLDB2019接受等。
2777 0
EB级计算平台调度系统伏羲 DAG 2.0: 构建更动态更灵活的分布式计算生态
QGraphicsItem如何使用信号/槽
简述 对于 QGraphicsItem 来说,信号/槽和属性机制不是它的一部分,因为它不继承自 QObject。这是一个出于性能考虑的设计决策,允许比较大的场景以及快速的交互。 特殊情况下,如果真的需要使用信号/槽,可以使用 QObject 的信号/槽和属性机制来扩展 QGraphicsItem。 简述 继承自 QObject 和 QGraphicsItem 继承
2047 1