EF 多表关联查询,需要查询出关联表的信息,需用到include方法,以查询数据列表为例,代码如下
/// <summary>
/// 获取数据列表
/// </summary>
/// <param name="orderExp">排序条件</param>
/// <param name="expression">查询条件</param>
/// <param name="orderBy">排序方式</param>
/// <param name="includes">关联表</param>
/// <returns></returns>
public List<T> GetList(Expression<Func<T, dynamic>> orderExp,Expression<Func<T,bool>> expression = null,string orderBy="desc", string[] includes=null)
{
try
{
IQueryable<T> quary= netCoreDbContext.Set<T>().AsNoTracking().AsQueryable();
if (includes!=null&&includes.Any())
{
foreach (var include in includes)
{
quary = quary.Include(include);
}
}
if (expression != null)
{
quary = quary.Where(expression);
}
return orderBy == "desc" ? quary.OrderByDescending(orderExp).ToList() : quary.OrderBy(orderExp).ToList();
}
catch (Exception ex)
{
LogHelper.WriteErrLog(logPath, ex);
return null;
}
}