C# 使用聚合连接linq以将结果放入POCO
使用EF4,我试图想出一种更智能的方法,将数据从实体聚合到业务对象,即连接linq,将数据直接传递到我的BE,从而节省在linq之后从IEnumerable复制数据的步骤。我一直在尝试使用下面这样的东西,但似乎无法获得正确的语法。CustomerBE是一个普通的POCOC# 使用聚合连接linq以将结果放入POCO,c#,linq,entity-framework,poco,aggregate,C#,Linq,Entity Framework,Poco,Aggregate,使用EF4,我试图想出一种更智能的方法,将数据从实体聚合到业务对象,即连接linq,将数据直接传递到我的BE,从而节省在linq之后从IEnumerable复制数据的步骤。我一直在尝试使用下面这样的东西,但似乎无法获得正确的语法。CustomerBE是一个普通的POCO var customers = uow .GetAllCustomers() .Aggregate((list,obj) => new List&
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;
});
var客户=uow
.GetAllCustomers()
.Aggregate((列表,obj)=>新列表()
{
var beo=new CustomerBE{FirstName=obj.FirstName,
Id=对象Id
...
};
列表。添加(beo);
退货清单;
});
为什么不在Select
语句中执行此操作<代码>选择用于从一种类型映射到另一种类型:
var customers = uow
.GetAllCustomers()
.AsEnumerable()
.Select(c => new CustomerBE { FirstName = c.Firstname,
Id = c.Id
// ...
}
)
.ToList();
为什么不在
Select
语句中执行此操作<代码>选择用于从一种类型映射到另一种类型:
var customers = uow
.GetAllCustomers()
.AsEnumerable()
.Select(c => new CustomerBE { FirstName = c.Firstname,
Id = c.Id
// ...
}
)
.ToList();
通常最好避免在LINQ查询中产生副作用(将项添加到聚合调用内的列表中)。这与它的设计相反。您应该基于查询返回创建的对象,而不是修改其中的内容。通常,最好避免在LINQ查询中造成副作用(将项添加到聚合调用中的列表中)。这与它的设计相反。您应该返回基于查询创建的对象,而不是修改其中的某些内容。这正是我所寻找的,我想我被名称聚合引入了错误的路径,认为我应该使用它,因为这是我试图做的,而不是选择。@aggaton-Aggregate的意思是“减少”在map/reduce俚语中。它负责生成集合外的标量值(总和、计数、最大值等)。“选择”是您正在查看的内容for@aggatonAZ是正确的-聚合是“减少”,选择是“映射”-您正试图从一种类型“映射”到另一种类型,这正是选择所做的…这正是我所寻找的,我想我被名称聚合引入了错误的路径,认为我应该使用它,因为这就是我要做的,而不是选择。@aggaton-Aggregate在map/reduce俚语中的意思是“reduce”。它负责生成集合外的标量值(总和、计数、最大值等)。“选择”是您正在查看的内容for@aggatonAZ是正确的-聚合是“减少”,选择是“映射”-您正试图从一种类型“映射”到另一种类型,这正是选择所做的。。。