【发布时间】:2014-07-11 08:55:33
【问题描述】:
public IQueryable<Users> SelectAdmin<TProp>(string sSortExpression, string sSortOrder ,long[] IAds, int iStart, int iEnd, long iId)
{
var param = Expression.Parameter(typeof(Users));
var propExpression = Expression.Lambda<Func<Users, TProp>>(Expression.Property(param, sSortExpression), param);
if (sSortOrder == "asc")
{
return objCouponUow.Repository<Users>().Entities.Where(x => x.UserGroup == 9 && x.Validate == 0 && x.Deleted == false && IAds.Contains(x.UserParent)).OrderBy(propExpression).Skip(iStart).Take(iEnd - iStart);
}
}
这是我的功能..我收到错误:
var propExpression = Expression.Lambda<Func<Users, TProp>>(Expression.Property(param, sSortExpression), param);
当用户表中的列'sSortExpression'是 Varchar 类型时,没有问题,但如果它的 Int 类型.. 发生错误 “System.Int16”类型的表达式不能用于返回类型“System.Object”
我该如何解决这个问题?
【问题讨论】:
标签: c# asp.net-mvc linq entity-framework-5 lambda