zoukankan      html  css  js  c++  java
  • EntityFramework Core入门教程-05-查询

    原文:https://blog.csdn.net/weixin_40719943/article/details/106959769


                         一、简单表达式查询

    方式一:

    查询原理:前面两行只是创建了查询语句,并没有执行查询数据库操作
    和linq一样,只有加上toList()或类似方法,才会执行查询数据库的操作

    var leagues1 = context.Leagues
                .Where(x => x.Country.Contains("e"))
                .ToList();
    
    总结:DbContext遇到以下方法时才会执行查询操作:
    > ToList(),First(),FirstOrDefault()
    > Single(),SingleOrDefault(),Last(),LastOrDefault()
    > Count(),LongCount(),Min(),Max(),Average(),Sum()
    > Find()
    

    注意:使用LastOrDefault()之前要先排序,否则会报错。

    方式二:

    上面的查询也可以用EF的方法实现

    var leagues11 = context.Leagues
                    .Where(x => EF.Functions.Like(x.Country, "%e%"))
                    .ToList();
    

    方式三 :

    使用foreach也会执行查询数据库操作,推荐用tolist()

    foreach (var item in context.Leagues)
    {
        Console.WriteLine(item.Name);
    }
    

    方式四:

    使用linq查询

    var leagues2 = (from lg in context.Leagues
             		where lg.Country == "USA"
                    select lg)
                    .ToList();
    

    二、主键查询

    有两种方式:
    方式1是常规的查询
    方式2:EFCore提供Find接口专门用来针对主键的查询,先查内存内容,没有才查数据库。

    //方式1
    var first = context.Leagues.SingleOrDefault(e => e.Id == 2);
    
    //方式二:使用find方法,专门用于主键的查询
    var second= context.Leagues.Find(2);
    

    三、分页查询

    skip:相当于slq分页查询中的offset
    Take:查询的数量

    var leagues = context.Leagues.Skip(1).Take(3).ToList();
    
  • 相关阅读:
    jqGrid详解及高级应用(十四)
    ERP存储过程的调用和树形菜单的加载(四)
    IDisposable接口
    SQL调用系统存储过程整理
    Net作业调度-----Quartz.Net
    C#泛型(二)
    ERP通用存储过程封装(三)
    ERP PowerDesigner工具使用(二)
    ERP简介(一)
    jQuery.TreeView插件实现树状导航(十三)
  • 原文地址:https://www.cnblogs.com/springsnow/p/13403843.html
Copyright © 2011-2022 走看看