1
我試圖通過Json(使用Ajax)將應用程序列表返回給應用程序。我已經嘗試過在兩個方面:查詢實體框架時出錯,OutOfMemoryException或使用上下文時出錯。AsNoTracking()
使用SELECT
var query = (from ad in db.AddressNamePlaces.AsNoTracking()
where ad.cepPlace == zipCode.Replace("-", string.Empty)
select ad).ToList();
。凡(表達)方法:
var query = db.AddressNamePlaces.AsNoTracking().Where(l => l.cepPlace == zipCode.Replace("-", string.Empty)).ToList();
他們都工作正常。
注意事項:AddressNamePlace中的相關表有超過770k條記錄,如果我使用沒有.AsNoTracking()方法,應用程序返回給Json一個OutOfMemoryException。實體框架爲每個記錄實例化很多對象,並且.AsNoTracking()方法避免它。
如果我使用上述查詢,我收到以下錯誤: 「當使用NoTracking合併選項返回對象時,只能在EntityCollection或EntityReference不包含對象時調用Load。」
那麼,這裏有什麼問題?