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: 我錯了......它編譯罰款,一切似乎是工作,但我的產品都是空的...... 我又難住了。 ..