EntityFramework Core入门教程-05-查询

简单表达式查询

方式一:
查询原理:前面两行只是创建了查询语句,并没有执行查询数据库操作
和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是常规的查询
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();

猜你喜欢

转载自blog.csdn.net/weixin_40719943/article/details/106959769