nhibernate3 linq的的select 操作
生活随笔
收集整理的這篇文章主要介紹了
nhibernate3 linq的的select 操作
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
ling 的select 操作1 ,看了2天nhibernate的官方網站,基本方法測試了。等有空把nhibernate的源碼下拉研究下
View Code using System; using System.Linq; using NHibernate.Transform; using NUnit.Framework; using NetworkMonitor.DAL.Business.Model;namespace NetworkMonitor.NunitTest.DAlTets {public class MyUser{public string 姓名 { set; get; }public string 密碼 { set; get; }public int Tj { set; get; }public DateTime MaxDate { set; get; }}[TestFixture]public class 數據庫操作LingSelect{private readonly NetworkMonitor.DAL.Core.MyServiceFactory _service = NetworkMonitor.DAL.Core.MyServiceFactory.Instance;#region 獲取一個字段[Test]public void Select操作(){var bb = _service.GetTbUserService.Dao();var list1 =bb.SessionFactory.GetSession().QueryOver<TbUser>().Select(c => c.UserName).List<string>();foreach (var str in list1){System.Console.WriteLine(str.ToString());}}#endregion#region 獲取幾個字段[Test]public void select獲取對象到零時list(){var bb = _service.GetTbUserService.Dao();var list2 =bb.SessionFactory.GetSession().QueryOver<TbUser>().//1.設置查詢 Select(c => c.UserName,c => c.LoginPWD).List<object[]>()//2.設置查詢結果 .Select(pro => new{姓名 = (string)pro[0],密碼 = (string)pro[1]});foreach (var str in list2){System.Console.WriteLine(str.姓名);System.Console.WriteLine(str.密碼);}}#endregion#region 獲取幾個字段--到對象[Test]public void select獲取到對象(){var bb = _service.GetTbUserService.Dao();var list3 =bb.SessionFactory.GetSession().QueryOver<TbUser>().//1.設置查詢 Select(c => c.UserName,c => c.LoginPWD).List<object[]>()//2.設置查詢結果到對象 .Select(pro => new MyUser(){姓名 = (string)pro[0],密碼 = (string)pro[1]});foreach (var str in list3){System.Console.WriteLine(str.姓名);System.Console.WriteLine(str.密碼);}}#endregion#region 組合測組合select到objectList[Test]public void 測組合select到objectList(){var bb = _service.GetTbUserService.Dao();var list =bb.SessionFactory.GetSession().QueryOver<TbUser>().SelectList(//指定選擇字段ar => ar.Select(c => c.UserName) //ar.Select(c => c.GroupName)報錯和group有沖突//指定條件字段.SelectCount(c => c.Id)//統計 .SelectGroup(c => c.UserName )//group 這里一定要主意前面select可以group .SelectMax(c => c.Createdate)// ).List<object[]>();foreach (var ob in list){//順序就是你自己select的順序string username = (string) ob[0];int tj = (int) ob[1];string username2 = (string)ob[2];DateTime max = (DateTime) ob[3];System.Console.WriteLine("uname ={0}, tj={1} gpuname={2} maxD = {3}",username,tj,username2,max);}}#endregion#region 測組合select到指定對象List[Test]public void 測組合select到指定對象List(){var bb = _service.GetTbUserService.Dao();MyUser myUser = null;var list =bb.SessionFactory.GetSession().QueryOver<TbUser>().SelectList(//指定選擇字段ar => ar//.Select(c => c.UserName).WithAlias(()=>myUser.姓名)//指定條件字段.SelectCount(c => c.Id).WithAlias(()=>myUser.Tj)//統計 結合group 使用 .SelectGroup(c => c.UserName).WithAlias(()=>myUser.姓名)//group .SelectMax(c => c.Createdate).WithAlias(()=>myUser.MaxDate)// ).TransformUsing(Transformers.AliasToBean<MyUser>()).List<MyUser>();foreach (var user in list){Console.WriteLine("uname ={0}, tj={1} gpuname={2} maxD = {3}",user.姓名,user.Tj,user.姓名,user.MaxDate);}}#endregion} }轉載于:https://www.cnblogs.com/loswing/archive/2012/04/28/2475514.html
總結
以上是生活随笔為你收集整理的nhibernate3 linq的的select 操作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: WCF:Maximum number o
- 下一篇: CyanogenMod源码编译模拟器