我正在编写类似于以下内容的LINQ查询:
var test = from o in dbcontext.Orders.AsEnumerable()
where o.ID==1
select new Order
{
Name = GetName(o.ID)
};为了在LINQ查询中调用外部函数,我在查询中使用AsEnumerable()。
我了解到,在调用枚举函数(如ToList()等)之前,通常不会执行查询。但在这里,我调用查询中的枚举。
有人能告诉我像这样使用AsEnumerable()是否被认为是不好的做法吗?与创建查询后调用ToList()相比,它的性能会下降吗?
发布于 2012-08-15 10:55:58
我会做
var ids = from o in dbcontext.Orders
where o.ID==1
select new { ID = o.ID };
var names = from i in ids.AsEnumerable()
select new Order { Name = GetName(i.ID) };也就是说,在数据库中尽可能多地进行查询,然后在C#中只执行ID到名称的转换。
https://stackoverflow.com/questions/11968045
复制相似问题