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();
原文地址:https://www.cnblogs.com/springsnow/p/13403843.html