C# 我得到了无效的整数文本c
我正在尝试在MVC中启用分页。但我得到的是无效的整数文本“6202013110304263882789”。这个大的长数字实际上是我们创建的一个唯一的传真ID号——它是一个字符串。为什么我会出现这个错误,我该如何修复它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
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分类,我知道了。现在我明白你的意思了。非常感谢你这么快就帮了我这个忙。你太棒了!!!