【发布时间】:2012-08-09 16:57:05
【问题描述】:
使用 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;
});
【问题讨论】:
-
通常最好避免在 LINQ 查询中引起副作用(将项目添加到聚合调用内的列表中)。这与它的设计背道而驰。您应该根据查询返回创建的对象,而不是修改其中的某些内容。
标签: c# linq entity-framework poco aggregate