мы написали Generic функцию, чтобы сначала получить записи из EF-кода в шаблоне репозитория. Кажется, что это нормально, но, передавая Integer в динамический порядок, он говорит Cannot cast System.Int32 to System.Object
выражение выглядит следующим образом:
Expression<Func<HeadOffice, object>> orderByFunc = o => o.Id;
if (options.sort == "Id")
{
// this is an Integer
orderByFunc = o => o.Id;
}
if (options.sort =="Name")
{
// string
orderByFunc = o => o.Name;
}
if (options.sort == "Code")
{
orderByFunc = o => o.Code;
}
общий метод выглядит следующим образом:
public virtual IEnumerable<TEntity> GetSorted<TSortedBy>(
Expression<Func<TEntity, object>> order,
int skip, int take,
params Expression<Func<TEntity, object>>[] includes)
{
IQueryable<TEntity> query = dbSet;
foreach (var include in includes)
{
query = dbSet.Include(include);
}
IEnumerable<TEntity> data = query.OrderBy(order).Skip(skip).Take(take).ToList();
return data;
}
если мы преобразуем Expression<Func<TEntity, object>>
в Expression<Func<TEntity, int>>
, тогда он, кажется, отлично работает с целым числом, но, следовательно, не с строками
любая помощь оценена.