c# - LINQ 'AsEnumerable' 和 Entity Framework

标签 c# performance entity-framework linq

我正在编写类似于以下内容的 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/

相关文章:

javascript - 非常技术性 - 模态需要时间加载。如何减少加载时间?

performance - 每天的最大时间戳

entity-framework - Code First Entity Framework 和 Windows Azure SQL

entity-framework - Entity Framework 映射问题

c# - 为什么 services.AddControllers().AddNewtonsoftJson() 使用 .Net5 核心抛出异常

c# - 多年来一直是 LAMP 开发人员,现在正在过渡到 Microsoft Web Stack。我从哪里开始?

c# - LINQ 包含使用投影

c# - 查找控件的直接祖先/父级

performance - Kafka分区影响性能

entity-framework - 使用复杂类型的 Entity Framework 和 Fluent API