我對包含命令有一個理解和使用問題,主要是在nopCommerce 1.9網站上工作時,但我在任何地方都遇到同樣的問題。我已經搜索了網絡,並在stackoverflow,但似乎無法找到任何其他人有同樣的問題,所以我想這只是我得到這個錯誤。實體框架4 Linq包括不加載集合
我認爲這個問題很簡單,但很簡單:當我在查詢父實體時包含子實體時,EF加載所有實體,但不加載這意味着當我嘗試訪問集合時, EF返回數據庫加載集合。
爲了澄清,考慮以下因素:
var products = (from p in _context.Products.Include("NpProductVariants") select p).ToList();
var productvariant = products.ProductVariants[2]; //Loads the NpProductVariants collection
我認爲,額外的抓取superflous,事實上,如果我創建一個對象使用架,以保持導航收集和代碼,我能避免進一步取,但是這很煩人即
var products = (from p in _context.Products.Include("NpProductVariants") select new productholder() { product = p, variants = p.NpProductVariants }).ToList();
這證明,收集查詢執行過程中,因爲我可以儲存它,但它不會自動顯示爲連接到ObjectContext的,直到我嘗試訪問特性,這需要一個前tra查詢。
我認爲問題很清楚,但是我做錯了什麼?
任何幫助將不勝感激。
謝謝。
馬克
:您包含'NpProductVariants',然後使用products.'ProductVariants [2]'。而且你沒有包含任何ProductVariants ...那麼,你想要哪一個? –