在EF Core 中使用AsQueryable扩展方法的拼接查询
AsQueryable扩展方法的拼接查询使用:
using MyDbcontext _dbcontext=new MyDbcontext();
var query=_dbcontext.Users.AsQueryable();
if(!string.IsNullOrWhiteSpace(username))
{
query=query.Where(p=>p.UserName!.Contains(username));
}
if(!string.IsNullOrWhiteSpace(password))
{
query=query.Where(p=>p.Pwd!.Contains(password));
}
if(userId>0)
{
query=query.Where(p=>p.UserId==id);
}
var List_user=query.ToListAsync();
一般常用的查询预加载查询,但是要用拆分查询来优化,避免迪卡尔效应带来的数据冗余
var list=_dbcontext.users.Include(p=>p.Role.Bills)
.AsSplitQuery() //拆分查询
.ToListAsync();