nhibernate3 linq的where操作

using NHibernate.Criterion;
using NUnit.Framework;
using NetworkMonitor.DAL.Business.Model;

namespace NetworkMonitor.NunitTest.DAlTets
{
    class 数据库操作LingWhere
    {
        //private NetworkMonitor.DAL.Core.MyServiceFactory.
        private readonly NetworkMonitor.DAL.Core.MyServiceFactory _service = NetworkMonitor.DAL.Core.MyServiceFactory.Instance;

        [Test]
        public void Where基本操作()
        {
            var bb = _service.GetTbUserService.Dao();



            bb.SessionFactory.GetSession().QueryOver<TbUser>().
                //每个where之间用 and自动连接
                // WHERE (this_.UserName = @p0 and this_.UserName = @p1)  
                Where(c => c.UserName == "test" && c.UserName == "10")
                .And(c => c.UserName == "99"|| c.UserName == "")
                /*
                 * 建议 一次都放到where里面
                 */

            
                //排序
                .OrderBy(c => c.UserName).Asc
                .List();

        }
        [Test]
        public void Where级联操作()
        {
            var bb = _service.GetTbUserService.Dao();

            //准备级联条件--
            /**/
            QueryOver<TbUser> lr刘瑞 =
             QueryOver.Of<TbUser>()
                 .Where(oo => oo.UserName =="刘瑞").Select(oo =>oo.UserName);


            TbUser tbUser = null;
            var list =  bb.SessionFactory.GetSession().QueryOver<TbUser>()
 
                .WithSubquery.WhereProperty(c => c.UserName).NotIn(lr刘瑞)//没有刘瑞的数据



                //排序
                 //.OrderBy(c => c.UserName).Asc
                .List();

            foreach (var user in list)
            {
               // Assert.AreEqual(user.UserName,"刘瑞");
                System.Console.WriteLine(user.UserName);
            }
        }

        [Test]
        public void Where多表联操作()
        {
            var bb = _service.GetTbUserService.Dao();

            //准备级联条件--
            /**/
            QueryOver<TbUserRole> lrXX =
             QueryOver.Of<TbUserRole>().
                    Select(oo => oo.UId);


            TbUser tbUser = null;
            var list = bb.SessionFactory.GetSession().QueryOver<TbUser>()

                .WithSubquery.WhereProperty(c => c.Id).Eq(lrXX)//只有XX的数据
             //排序
                //.OrderBy(c => c.UserName).Asc
                .List();

            foreach (var user in list)
            {
                // Assert.AreEqual(user.UserName,"X11X");
                System.Console.WriteLine(user.UserName);
            }
        }
    }
}

转载于:https://www.cnblogs.com/loswing/archive/2012/04/28/2475517.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值