У меня есть общий класс 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, чтобы результаты сначала упорядочивались по пути, который, конечно, хранится в таблице пути.
Проблема, с которой я сталкиваюсь, заключается в том, что сущность "Путь" не всегда включена в результат.Вот почему мне нужно сначала проверить, а затем создать собственное выражение для предложения OrderBy.