读书人

下面的Linq语句要如何改提示“无法从

发布时间: 2012-05-27 05:42:30 作者: rapoo

【求助】下面的Linq语句要怎么改,提示“无法从用法中推导出方法xx的类型实参”

C# code
public static List<ReTailerSalesDataInfo> GetRetailerSalesData<TKey>(int pageSize, int pageIndex, Expression<Func<PublisherSalesDaily, TKey>> orderBy, bool isOrderByDescending,Expression<Func<PublisherSalesDaily, bool>> condition)        {            Entity.EntitesDataContext db = new EntitesDataContext(Business.Entities.Config.Default.ConnectionString);            try            {                IQueryable<ReTailerSalesDataInfo> q = from sf in db.RetailerSalesFailedRows                                                      from si in db.RetailerSalesInfoRows                                                      where sf.Retailer == si.Retailer                                                      select new ReTailerSalesDataInfo                                                      {                                                          Retailer = sf.Retailer,                                                          ISBN = sf.ISBN,                                                          Date = sf.Date,                                                          SoldCount = si.Quantity,                                                          ReturnedCount = sf.Quantity,                                                          SoldMoney = si.SellPrice * si.Quantity,                                                          ReturnedMoney = Convert.ToDecimal(sf.Quantity ?? "0") * Convert.ToDecimal(sf.SellPrice ?? "0")                                                      };                var result=q.GetEntitysByPage(pageSize, pageIndex, orderBy, isOrderByDescending, condition);/*错误    38    无法从用法中推导出方法“System.Collections.Generic.ExtensionEnumerable.GetEntitysByPage<TEntity,TKey>(System.Linq.IQueryable<TEntity>, int, int, System.Linq.Expressions.Expression<System.Func<TEntity,TKey>>, bool, System.Linq.Expressions.Expression<System.Func<TEntity,bool>>)”的类型实参。请尝试显式指定类型实参。    E:\xdq\Desktop\MyWorkSpace\SourceCode\BusinessTier\SalesData.cs    3338    28    Clochase.eBound.BusinessTier*/                return result.ToList();/*错误    39    无法从用法中推导出方法“System.Linq.Enumerable.ToList<TSource>(System.Collections.Generic.IEnumerable<TSource>)”的类型实参。请尝试显式指定类型实参。    E:\xdq\Desktop\MyWorkSpace\eBound\SourceCode\Clochase.eBound\Clochase.eBound.BusinessTier\SalesData.cs    3339    24    Clochase.eBound.BusinessTier*/            }            catch (Exception exp)            {                return new List<ReTailerSalesDataInfo>();            }            finally            {                if (db != null)                    db.Dispose();            }        }//ReTailerSalesDataInfo类//自己定义的,非dbml生成         public class ReTailerSalesDataInfo        {            public string Retailer { get; set; }            public string ISBN { get; set; }            public string Date { get; set; }            public int? SoldCount { get; set; }            public string ReturnedCount { get; set; }            public decimal? SoldMoney { get; set; }            public decimal ReturnedMoney { get; set; }        }//GetEntitysByPage方法public static IQueryable<TEntity> GetEntitysByPage<TEntity, TKey>(this IQueryable<TEntity> source,           int pageSize, int pageIndex,           Expression<Func<TEntity, TKey>> orderBy, bool isOrderByDescending,           Expression<Func<TEntity, bool>> condition) where TEntity : class        {            IQueryable<TEntity> results = source;            if (condition != null)                results = results.Where(condition);            if (orderBy != null)            {                if (isOrderByDescending)                    results = results.OrderByDescending(orderBy);                else                    results = results.OrderBy(orderBy);            }            results = results.Skip(pageIndex * pageSize).Take(pageSize);            return results;        } 



[解决办法]
你的问题在这一句:

var result=q.GetEntitysByPage(pageSize, pageIndex, orderBy, isOrderByDescending, condition);


返回类型

读书人网 >.NET

热点推荐