Igo*_*hov 4 c# entity-framework iqueryable
我有两个 IQueryable 查询:
IQueryable<Ad> list1 = db.Ads.Where(x=>x.isModerated == true);
IQueryable<Ad> list2;
if(something == true)
{
list2 = list1.Where(x=>x.TypeId == 2)
// is it going to be the same as query below?
IQueryable<Ad> list1 = db.Ads.Where(x=>x.isModerated == true && x.TypeId == 2)
}
Run Code Online (Sandbox Code Playgroud)
如果我想使用 OR (||) 运算符获取数据,情况是一样的。
我相信这将是一个数据库调用,直到我想迭代这个查询。对?
它会与下面的查询相同吗?
是的
如果我想使用 OR (||) 运算符获取数据,情况是一样的。
这样做的资源成本要低得多:
IQueryable<Ad> list1 = db.Ads.Where(x=>x.isModerated);
IQueryable<Ad> list2;
if(something == true)
{
list2 = list1.Where(x=>x.TypeId == 2)
}
else
{
list2 = db.Ads.Where(x=>x.isModerated || x.TypeId == 2)
}
Run Code Online (Sandbox Code Playgroud)
但是如果由于某种原因你不想这样做,你可以这样做:
list2 = list1.Union(db.Ads.Where(x=> x.TypeId == 2))
Run Code Online (Sandbox Code Playgroud)
会给你相同的结果集
| 归档时间: |
|
| 查看次数: |
1961 次 |
| 最近记录: |