我試圖在這篇文章中應用這個建議:Tip 22 - How to make Include really Include如何將IQueryable <T>轉換爲ObjectQuery <T>?
它提出了一個解決方案,以確保實體框架(4.2)中的熱切加載工作。該解決方法涉及將IQueryable轉換爲ObjectQuery。
但是,當我嘗試這一點,如帖子所示,查詢返回一個空值。
我的查詢(CTX是的DbContext):
IEnumerable<Coupon> coupons =
from x in ctx.Coupons
where x.LanguageCode.Equals("EN", StringComparison.InvariantCultureIgnoreCase) && x.CategoryId == MainCategoryId && x.Date >= fromDate && x.Date <= toDate
select x;
按預期工作。
然而,當我使用,
IEnumerable<Coupon> coupons =
(from x in ctx.Coupons
where x.LanguageCode.Equals("EN", StringComparison.InvariantCultureIgnoreCase) && x.CategoryId == MainCategoryId && x.Date >= fromDate && x.Date <= toDate
select x) as ObjectQuery<Coupon>;
一個null分配給 「優惠券」。
任何想法我做錯了什麼?
如果使用`var`而不是`IEnumerable``會怎麼樣? `IQueryable `和`IEnumerable `不是一回事。 –
GalacticCowboy
2011-12-16 18:35:48
您的ctx是DbContext還是ObjectContext? ObjectQuerys僅用於ObjectContexts。您還可以在調試器中檢查coupons.GetType(),以查看查詢的真實類型。 – hvd 2011-12-16 18:42:14