我正在编写类似于以下内容的 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()
相比,它会降低性能吗?
最佳答案
我愿意
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 到名称的转换。
关于c# - LINQ 'AsEnumerable' 和 Entity Framework ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11968045/