问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

NHibernate和Linq有什么关系

发布网友 发布时间:2022-04-30 02:29

我来回答

2个回答

懂视网 时间:2022-04-30 06:50

KimismeDemo { public partial class Form2 : Form { private ISession session; private ISessionFactory factory; private ITransaction trans; public Form2() { InitializeComponent(); } #region 1.初始化NH - private void Form2_Load(object sender, EventArgs e) private void Form2_Load(object sender, EventArgs e) { Configuration config = new Configuration().AddAssembly("Kimisme"); factory = config.BuildSessionFactory(); session = factory.OpenSession(); dgvList.AutoGenerateColumns = false; } #endregion #region 2.0 执行 sql语句 - private void tsmiExecuteSql_Click(object sender, EventArgs e) private void tsmiExecuteSql_Click(object sender, EventArgs e) { string strSql = "select * from T_Student where sId >1"; ISQLQuery sqlQuery = session.CreateSQLQuery(strSql).AddEntity(typeof(Student)); IList<Student> stuList = sqlQuery.List<Student>(); dgvList.DataSource = stuList.ToList(); } #endregion #region 3.0 执行存储过程 - private void btnExecuteStoreProc_Click(object sender, EventArgs e) private void btnExecuteStoreProc_Click(object sender, EventArgs e) { trans = session.BeginTransaction(); IList<Student> stuList = new List<Student>(); ISessionFactoryImplementor imp = factory as ISessionFactoryImplementor; IDbConnection conn = imp.ConnectionProvider.GetConnection(); IDbCommand cmd = imp.ConnectionProvider.GetConnection().CreateCommand(); try { cmd.CommandText = "Pro_GetStudent"; cmd.CommandType = CommandType.StoredProcedure; IDbDataParameter parameter = cmd.CreateParameter(); parameter.ParameterName = "StudentId"; parameter.Value = 4; cmd.Parameters.Add(parameter); cmd.Connection = conn; IDataReader read = cmd.ExecuteReader(); while (read.Read()) { Student stu = new Student(); stu.Id = int.Parse(read.GetValue(0).ToString()); stu.Name = read.GetValue(1).ToString(); stu.Age = int.Parse(read.GetValue(2).ToString()); stuList.Add(stu); } trans.Commit(); dgvList.DataSource = stuList.ToList(); } catch (Exception ex) { MessageBox.Show(ex.Message); } } #endregion #region 4.0 执行hql语句 -private void tsmiExecuteHql_Click(object sender, EventArgs e) private void tsmiExecuteHql_Click(object sender, EventArgs e) { string strHql = "from Student stu where stu.Id >:stuId"; IList<Student> stuList = session.CreateQuery(strHql).SetInt32("stuId", 7).List<Student>(); dgvList.DataSource = stuList.ToList(); } #endregion #region 5.0 执行linq语句-聚合函数 - Max private void tsmiMax_Click(object sender, EventArgs e) { var stuList = session.QueryOver<Student>().Where(s => s.Id > 0).List(); int maxAge = (from s in stuList select s.Age).Max(); MessageBox.Show(maxAge.ToString()); } #endregion #region 5.1 执行linq语句-聚合函数 - Min private void tsmiMin_Click(object sender, EventArgs e) { var stuList = session.QueryOver<Student>().Where(s => s.Id > 0).List(); int minAge = (from s in stuList select s.Age).Min(); MessageBox.Show(minAge.ToString()); } #endregion #region 5.2执行linq语句-聚合函数 - Avg private void tsmiAvg_Click(object sender, EventArgs e) { var stuList = session.QueryOver<Student>().Where(s => s.Id > 0).List(); double avgAge = (from s in stuList select s.Age).Average(); MessageBox.Show(avgAge.ToString()); } #endregion #region 5.3执行linq语句-聚合函数 - Sum private void tsmiSum_Click(object sender, EventArgs e) { var stuList = session.QueryOver<Student>().Where(s => s.Id > 0).List(); int sumAge = (from s in stuList select s.Age).Sum(); MessageBox.Show(sumAge.ToString()); } #endregion #region 5.4 执行linq语句-聚合函数 - Count private void tsmiCount_Click(object sender, EventArgs e) { var stuList = session.QueryOver<Student>().Where(s => s.Id > 0).List(); int countAge = (from s in stuList select s.Age).Count(); MessageBox.Show(countAge.ToString()); } #endregion } }

5.代码下载

下载地址

NHibernate系列学习(二)-使用sql和hql以及linq

标签:

热心网友 时间:2022-04-30 03:58

Linq是一种C#语法或特性,其实任何ORM(类似 Hibernate、Linq2SQL这种都是ORM)都可以使用

对于NHibernate来说,你可以通过Linq语法或Linq Provider来访问数据库,这是NHibernate对C#的支持,当然这不是强制的,你如果只用传统的方式去访问也没有问题
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
小米摄像头离线人在外地怎么办 win11如何固定电脑桌面图标 QQ三国的当代杰出少年是怎么得的? 三国人物风云榜的作者简介 三国人物风云榜作者简介 三国人物风云榜目录 三国人物风云榜内容提要 w10电脑不动黑屏w10系统开机黑屏只有鼠标箭头怎么回事 ...FRAMEWORK中的Action, Control, Resource, Model到底是什么关系... windframework特点 描写人物品质的句子。 描写人物品格的句子 什么是 宏功能? 主观与客观各是什么意思? Wrap认证要求有哪些 电脑中“宏”是什么意思? 描写人物品质的句子有哪些 企业内部标准算产品生产标准吗? wrap认证是什么 描写人物品质的好句子摘抄 赞美同学的话,比如说某某同学有什么样的优秀品质,100字左右,谢谢了... 苹果手机截图快捷键是哪个键 关于描写人物品质的好句? 产品标准与产品执行标准是否有区别? 产品的执行标准具体是指什么?要找什么样的相关文件? 安保感控产品的生产标准高吗? 呼吸机的生产标准是什么? 申报广东省专精特新时,有关“产品生产执行标准达到国际或国内先进水平”的相关问题? 食品类产品的生产销售需要达到什么标准? 产品的企业标准是什么 客观与主观的区别与定义 描写人物品质的词句 主观与客观分别是什么意思 我是浙江一制衣厂,客户要求我们做WRAP认证,请问WRAP是什么 有哪些内容? 在电脑书上经常看到“宏”这个字,那么什么是宏呢?具体的解释是什么? 描写同学优学品质的语言、动作、神态的句子 关于计算机的“宏”什么? 谁能参加WRAP认证? WRAP认证辅导的内容是什么呀? 宏按键是什么?有什么用?请详细回答 wrap gold 是什么认证 华为HS8125C参数多少,多少赫兹的 华为echolifehs8125c能带起来300M网速吗? 如何获取华为HS8125C的产品使用说明书? 租手机不还会判刑吗 如何设置华为8125c光猫 华为HS8125C WiFi密码忘了怎么办? 华为HS8125C如何设置mac地址过滤? 在人人租机上租手机不还会怎样? 如何使华为HS8125C WiFi覆盖范围最大?