【发布时间】:2018-11-20 15:36:41
【问题描述】:
我有适用于数据库上下文的通用 EntityFramework 类。该类用于从任意表中获取数据。
public async Task<List<TResult>> GetAsync<T, TResult>(
Expression<Func<T, TResult>> selector,
Expression<Func<T, bool>> predicate = null,
IEnumerable<string> paths = null
)
where T : class, IEntityWithName<int>
{
var query = Entities<T>();
if (predicate != null)
query = query.Where(predicate);
if (paths != null)
foreach (var path in paths)
query = query.Include(path);
var resultQuery = query
.OrderBy(iten => item.Path.Path) // <- I need this part to work.
.ThenBy(item => item.FileName) // Sort by Path first, then by FileName
.Select(selector);
var items = await resultQuery.ToListAsync();
return items;
}
}
File table
ID filename PathID
1 dog1.jpg 1
2 dog2.jpg 2
Path table
ID Path
1 \\folderPath1\
2 \\folderPath2\
我的问题是如何提供 OrderBy 参数,以便结果首先按 Path 排序,当然是存储在 Path 表中。
我面临的问题是“路径”实体并不总是包含在结果中。这就是为什么我需要先检查,然后为 OrderBy 子句构建自定义表达式。
【问题讨论】:
-
您无需包含用于订购的路径。
标签: c# entity-framework linq entity-framework-6 sql-order-by