我得到无效的整数文字c#

时间:2014-01-16 21:32:10

标签: c# entity-framework repository-pattern

我正在尝试在C#MVC中启用分页。但我得到无效的整数文字'62020131100304263882789'。大长号实际上是我们创建的唯一FaxID号码 - 它是一个字符串。为什么我会收到此错误,我该如何解决?

public class GenericRepository<TEntity> where TEntity : class
{
    internal FaxContext context;
    internal DbSet<TEntity> dbSet;

    public GenericRepository(FaxContext context)
    {
        this.context = context;
        this.dbSet = context.Set<TEntity>();
    }

    public virtual IEnumerable<TEntity> GetWithRawSql(string query, params object[] parameters)
    {
        return dbSet.SqlQuery(query, parameters).ToList();
    }

    //public IPagedList<T> Search(Expression<Func<T, bool>> filters, string sorting, List<string> includeList, int currentPageNumber, int pageSize)

    public virtual IEnumerable<TEntity> GetAll(int skip, int take)
    {
        IQueryable<TEntity> query = dbSet;
        System.Diagnostics.Debug.Print(context.Faxes.First().FaxID);

        return query.OrderBy(TEntity => TEntity.).Skip(skip).Take(take).ToList();

        return query.OrderBy(context.Faxes.First().FaxID).Skip(skip).Take(take).ToList();
    }

由于

1 个答案:

答案 0 :(得分:1)

您正在将整数值(FaxID)传递给OrderBy方法,该方法需要Expression<Func<TEntity, TKey>> - 这就是您看到此错误的原因。

使用lambda表达式从实体中选择键以订购结果。它应该是这样的(假设你对TEntity有一些限制,这使得SomeProperty可供你使用 - 否则这里的排序没有意义):

return query.OrderBy(t => t.SomeProperty)
            .Skip(skip)
            .Take(take)
            .ToList();