c# - 使用聚合连接 linq 将结果放入 POCO

标签 c# linq entity-framework poco aggregate

使用 EF4 我试图想出一种更智能的方法来将数据从实体聚合到业务对象,即连接 linq 以将数据直接传送到我的 BE,从而节省了随后在 linq 之后从 IEnumerable 复制的步骤。我一直在尝试使用以下内容,但似乎无法正确使用语法。 CustomerBE 是一个普通的 POCO。

        var customers = uow
               .GetAllCustomers()
               .Aggregate((list,obj) => new List<CustomerBE>()
               {
                  var beo = new CustomerBE { FirstName = obj.Firstname,
                                             Id = obj.Id
                                              ...
                                           };
                  list.Add(beo);
                  return list; 
               });

最佳答案

为什么不直接在 Select 语句中执行此操作? Select 用于从一种类型映射到另一种类型:

var customers = uow
           .GetAllCustomers()
           .AsEnumerable()
           .Select(c => new CustomerBE { FirstName = c.Firstname,
                                         Id = c.Id
                                          // ...
                                       }
                  )
           .ToList();

关于c# - 使用聚合连接 linq 将结果放入 POCO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11888311/

相关文章:

entity-framework - EF Code First 创建非聚集主键索引

C# OnCommand 调用警告框

c# - File.Create 似乎锁定了文件。我怎样才能避免这种情况?

asp.net - LINQ:不支持查询运算符 'ElementAtOrDefault'

c# - 针对多个属性构建动态 where 子句

asp.net-mvc - 我的 ASP.NET MVC 应用程序结构是否正确?

c# - 您如何在不引用数据访问层的情况下使分层解决方案的UI项目解析EF实体

C# 设计,以便我可以轻松添加/更新映射到数据库的对象

c# - 创建一个数组或列表来计算值

c# - EntityFramework.dll 中出现 'System.ArgumentException' 类型的异常,但未在用户代码中处理