3
我有点头痛,为这个特定问题寻找解决方案。 所以在这里,它是: 可以说我有3个表:只返回部分对象图的实体框架查询
- 客户
- 订单
- 产品
我想要检索的客户名单和他们的一些过滤订单某些客户和订单“字段并返回仅显示每个实体的基本信息的图表。
例如,一个客户可以有19个字段,但我只想读取它的ID,名字,姓氏和订单,我只想读取NetPrice和相关产品ID,当迭代发生在查询,生成的SQL非常轻量级,只会选择那些特定的字段。
是可以实现的东西吗?如果是这样,怎么样?我很困惑如何做到这一点。
非常感谢。
编辑: 好吧,我已经设法做到了,男孩现在快! 我是这样做的:
var customers = (from customer in Context.Cutomers
select new
{
customer.ID,
customer.FirstName,
customer.LastName,
Orders = customer.Orders.Select(order => new
{
order.ID,
order.NetPrice,
Products = order.Products.Select(product => new
{
product.ID
}
}
})
.AsEnumerable()
.Select(c => new Customer
{
c.ID,
//In my case, this is VERY important as it will
//try to convert from IEnumerable<T> to ICollection<T>
//which seems to need to be explicit.
Orders = c.Orders as ICollection<Order>
})
.ToList();
编辑#2: 我错了......它编译罚款,一切似乎是工作,但我的产品都是空的...... 我又难住了。 ..