日期:2014-05-20 浏览次数:21394 次
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;
}