单表多条件查询,匿名类型,匿名对象,嵌套查询,Linq序列转换后调用外部方法

 

            //Linq语句
            NorthwindEntities db = new NorthwindEntities();

            //多条件单表查询
            var query = from q in db.Orders where q.OrderID > 10250 && q.OrderID < 10255 select q;
            query = from q in db.Orders where q.OrderID < 10250 || q.OrderID > 11075 select q;
            //功能等同的方法查询
            query = db.Orders.Where(c => c.OrderID > 10250).Where(c => c.OrderID < 10255);

            //匿名类型:选取数据的部分字段,注意括号的内容
            var query1 = from q in db.Orders select new { q.OrderID, q.OrderDate };
            var query2 = from q in db.Orders select new { yoyo = q.OrderID, yoyozhu = q.OrderDate };
            var query3 = from q in db.Orders select new { q.OrderID, yoyozhu = q.EmployeeID == 9 ? "YYYY" : "xxx" };
            //匿名对象:OrderInfo
            var query4 = from q in db.Orders select new { q.OrderID, OrderInfo = new {q.OrderDate,q.CustomerID } };
           
            //嵌套查询:查找订单里面有打折商品的信息
            var query5 = from q in db.Orders
                         select new
                         {
                             q.OrderID,
                             orderProducts = from qq in q.Order_Details
                                             where qq.Discount > 0
                                             select qq
                         };

            //调用外部方法:对查询之后的结果处理之后再输出.完全同意能再内部调用外部方法
            //不过要报错:因此该方法无法转换为存储表达式。这个问题可以解决,但是个人觉得
            //调用外部方法事实上可以不用放在内部,在需要的时候调用更合适
            var query6 = from q in db.Customers
                                   where q.CustomerID == "ALFKI"
                                   select   new { q.CustomerID, zhu = SetString(q.CompanyName) };
           

                 foreach (var tmp in query6)
                          Console.WriteLine(tmp.CustomerID + "\t" + SetString(tmp.zhu));
                   }

 

        static string SetString(string kk)
        {
            return kk + "__yoyo";
        }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值