EF查询 linq写法 DbContext.DbSet<TEntity>
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EF查询 linq写法 DbContext.DbSet<TEntity>相关的知识,希望对你有一定的参考价值。
public class BlogDbContext : DbContext
public BlogDbContext()
: base("BlogDbContext")
public DbSet<BlogArt> BlogArt
get;
set;
现在我想查询分类ID为1的博文,请问下面两种写法有什么异同?
1 BlogDbContext Db=new BlogDbContext();
return Db.BlogArt.where(a => a.BlogCata_ID== 1).toList();
2 var ls=
from a in Db.BlogArt
where a.BlogCata_ID==1
select a;
return a.toList();
本人不明白的地方,第二种方法,ef会生成sql查询语句,返回的是BlogCata_ID=1的所有博文
但我对第一种方法就不是很明白,它是跟第二种方法一样生成查询语句呢,还是首先从数据库返回所有博文数据,然后再在返回的数据筛选呢?
这两种都是直接查询数据库的,没有在内存中存储,
但要是这样两种都可以先把数据缓存到内存中再查:
List<BlogArt> ba=Db.BlogArt.toList();
ba.where(a => a.BlogCata_ID== 1)
var ls=
from a in Db.BlogArt.toList()
where a.BlogCata_ID==1
select a;
EF在没有ToList()前都不会去操作数据库 参考技术B 第一种是lamda表达式,第二种树linq,本质都是一样的吧。
以上是关于EF查询 linq写法 DbContext.DbSet<TEntity>的主要内容,如果未能解决你的问题,请参考以下文章