【发布时间】:2010-06-16 10:17:16
【问题描述】:
我的数据库中有一个视图 AdvertView,这个视图是一些表(广告、客户、属性)之间的简单连接。然后我有一个简单的 linq 查询来获取客户的所有广告:
public IEnumerable<AdvertView> GetAdvertForCustomerID(int customerID)
{
var advertList =
from advert in _dbContext.AdvertViews
where advert.Customer_ID.Equals(customerID)
select advert;
return advertList;
}
然后我希望将其映射到我的 MVC 应用程序的 modelItems:
public List<AdvertModelItem> GetAdvertsByCustomer(int customerId)
{
List<AdvertModelItem> lstAdverts = new List<AdvertModelItem>();
List<AdvertView> adViews = _dataHandler.GetAdvertForCustomerID(customerId).ToList();
foreach(AdvertView adView in adViews)
{
lstAdverts.Add(_advertMapper.MapToModelClass(adView));
}
return lstAdverts;
}
我原以为 SQL 会出现一些性能问题,但问题似乎出在 .ToList() 函数上。我正在使用 ANTS 性能分析器,它报告该函数的总运行时间为 1.400 毫秒,其中 850 个与 ToList() 一起使用。所以我的问题是,为什么 tolist 函数在这里需要这么长时间?
【问题讨论】:
标签: linq-to-sql c#-4.0