Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我得到了无效的整数文本c_C#_Entity Framework_Repository Pattern - Fatal编程技术网

C# 我得到了无效的整数文本c

C# 我得到了无效的整数文本c,c#,entity-framework,repository-pattern,C#,Entity Framework,Repository Pattern,我正在尝试在MVC中启用分页。但我得到的是无效的整数文本“6202013110304263882789”。这个大的长数字实际上是我们创建的一个唯一的传真ID号——它是一个字符串。为什么我会出现这个错误,我该如何修复它 public class GenericRepository<TEntity> where TEntity : class { internal FaxContext context; internal DbSet<TEntity> dbSe

我正在尝试在MVC中启用分页。但我得到的是无效的整数文本“6202013110304263882789”。这个大的长数字实际上是我们创建的一个唯一的传真ID号——它是一个字符串。为什么我会出现这个错误,我该如何修复它

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();
    }

谢谢

您正在将整数值FaxID传递给方法,该方法需要表达式-这就是您看到此错误的原因

使用lambda表达式从实体中选择键以排序结果。它应该是这样的,假设你对tenty有一些约束,这使一些属性对你可用-否则这里的排序没有意义:

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

谢谢你的快速回复。请你把你的意思扩展一下,不要拘束。我正在学习MVC和存储库模式。我看到的唯一属性是Equals、GetHashCode、GetType和ToString。谢谢。@user1828605我想您有通用存储库类。类似于公共类存储库。没有约束,只有对象的方法可用于TEntity类型的变量。如果您将通用参数约束放入此类,即添加where tenty:BaseEntity,则您将拥有BaseEntity成员avaialble@user1828605顺便问一下,您想在基本存储库中使用哪个字段进行排序?我刚刚编辑了上面的问题。你说得对,我有通用存储库。我想用传真ID分类,我知道了。现在我明白你的意思了。非常感谢你这么快就帮了我这个忙。你太棒了!!!