zoukankan      html  css  js  c++  java
  • LINQ to SQL:Where、Select/Distinct

    Where 操作
    适用场景:实现过滤,查询等功能。
    简单说明:与 SQL 命令中的 Where 作用相似,都是起到范围限定也就是过滤作用的 ,而判断条件就是它后面所接的子句。
    Where 操作包括 3 种形式:简单形式、关系条件形式、 First()形式。 
    
    
    1.简单形式:
    条件一:使用 where 筛选在名称为moxuanshang的客户
    var q =
    from c in db.MXSMember
    where c.TrueName.Equals(“moxuanshang”)  
    select c;
    
    换种方式 由实体类接收
    MXSMember member=db.MXSMember.Where(a=>a.TrueName.Equals(“moxuanshang”) ).FirstOrDefault();
    (由于MXSMember是个实体类 so 查询去第一条数据 此时FirstOrDefault()就起到了作用)
    
    
    条件二:筛选注册时间为2016年11月11日的会员:
    var q =
    from e in db.MXSMember
    where e.AddTime>= DateTime.Parse( DateTime.Now.ToString(“yyyy-MM-dd”))
    select e;
    
    换种方式  由实体类接收
    MXSMember member=db.MXSMember.Where(a=>a.AddTime>= DateTime.Parse( DateTime.Now.ToString(“yyyy-MM-dd”))).FirstOrDefault();
    (由于MXSMember是个实体类 so 查询去第一条数据 此时FirstOrDefault()就起到了作用)
    
    
    2.关系条件形式:
    筛选出注册时间为2016年11月11日 和 会员名为moxuanshang的会员
    var q =
    from p in db.MXSMember
    where p.AddTime>= DateTime.Parse( DateTime.Now.ToString(“yyyy-MM-dd”))&&p.TrueName.Equals("moxuanshang")
    select p;
    
    换种方式  由实体类接收
    MXSMember member=db.MXSMember.Where(a=>a.AddTime>= DateTime.Parse( DateTime.Now.ToString(“yyyy-MM-dd”))&&a.TrueName.Equals("moxuanshang")).FirstOrDefault();
    (由于MXSMember是个实体类 so 查询去第一条数据 此时FirstOrDefault()就起到了作用)
    
    筛选出 注册时间为2016年11月11日 或 会员名为moxuanshang的会员
    var q =
    from p in db.MXSMember
    where p.AddTime>= DateTime.Parse( DateTime.Now.ToString(“yyyy-MM-dd”))||p.TrueName.Equals("moxuanshang")
    select p;
    
    换种方式  由实体类接收
    MXSMember member=db.MXSMember.Where(a=>a.p.AddTime>= DateTime.Parse( DateTime.Now.ToString(“yyyy-MM-dd”))||a.TrueName.Equals("moxuanshang")).FirstOrDefault();
    (由于MXSMember是个实体类 so 查询去第一条数据 此时FirstOrDefault()就起到了作用)
     
    3.FirstOrDefault()、First()形式:
    返回集合中的一个元素,其实质就是在 SQL 语句中加 TOP (1)。
    
    第一种写法
     MXSMember member=db.MXSMember.Where(a=>a.p.AddTime>= DateTime.Parse( DateTime.Now.ToString(“yyyy-MM-dd”))||a.TrueName.Equals("moxuanshang")).FirstOrDefault();
     
    第二种写法
     MXSMember member=db.MXSMember.FirstOrDefault(a=>a.p.AddTime>= DateTime.Parse( DateTime.Now.ToString(“yyyy-MM-dd”))||a.TrueName.Equals("moxuanshang"));
     
    

      

    Select/Distinct 操作符
     O(∩_∩)O~„ 根据条件查询。
     
    
    1.简单用法:
     
    var q =
    from c in db.MXSMember
    select c.TrueName;
     
     var q =
    from c in db.MXSMember
    select new{c.TrueName} ;
     
    2.匿名类型 形式:
      
    var q =
    from c in db.MXSMember
    select new {c.TrueName, c.Phone};
     
    var q =
    from e in db.Employees
    select new
    {
    Name = e.FirstName + " " + e.LastName,
    Phone = e.HomePhone
    };
      
    var q =
    from p in db.Products
    select new
    {
    p.ProductID,
    HalfPrice = p.UnitPrice / 2
    };
     
    3.条件形式:
    说 明:生成 SQL 语句为: 
     var q =
    from p in db.Products
    select new
    {
    p.ProductName,
    Availability =
    p.UnitsInStock - p.UnitsOnOrder < 0 ?
    "Out Of Stock" : "In Stock"
    };
     
    4.指定类 型形式:
    说明:该形式返回你自定义类型的对象集。
    var q =
    from e in db.Employees
    select new Name
    {
    FirstName = e.FirstName,
    LastName = e.LastName
    };
     
    5.筛选形式:
    说明:结合 where 使用,起到过滤作 用。
    var q =
    from c in db.MXSMember
    where c.City == "London"
    select c.TrueName;
     
    var q =
    from c in db.MXSMember
    select new {
    c.CustomerID,
    CompanyInfo = new {c.CompanyName, c.City, c.Country},
    ContactInfo = new {c.TrueName, c.ContactTitle}
    };
     
    var q =
    from o in db.Orders
    select new {
    o.OrderID,
    DiscountedProducts =
    from od in o.OrderDetails
    where od.Discount > 0.0
    select od,
    FreeShippingDiscount = o.Freight
    };
     
    6.Distinct 形式:
     
    var q = (
    from c in db.MXSMember
    select c.City )
    .Distinct();
     
    

      

    小编博客园:http://www.cnblogs.com/moxuanshang

    小编CSDN:http://blog.csdn.net/u012122318

    小编QQ群:238575862

    小编微信订阅号请扫二维码识别

    请扫二维码哦

  • 相关阅读:
    laravel中使用include和component方法中的一点小区别
    【解决】Converting circular structure to JSON
    NUXT中使用axios,自己项目测试记录
    iPhone“连到系统上的设备没有发挥作用”原因分析及解决方法 20200105
    vue-touch不能上下滑动的问题【解决】
    动态加载swiper,默认显示最后一个swiper-slide怎么办
    CentOS 7 修改开机等待时间
    使用IIS管理器搭建FTP服务器以及其启用虚拟主机名
    织梦后台删除子栏目不成功的解决方法
    去除织梦标签[field:image/]所产生的宽高
  • 原文地址:https://www.cnblogs.com/moxuanshang/p/6054440.html
Copyright © 2011-2022 走看看