2
我遇到以下代碼的問題。當我在最初的RavenSession.Query<Item>()
呼叫上不呼叫ToList()
時,PhotoPath
屬性在ItemSummaryModel
對象中爲null。這是一個懶加載問題或其他導致這個問題的東西嗎?在ravendb上延遲加載的linq查詢中的意外行爲
PhotoPath
此屬性在初始保存時爲null。然後我在後續的編輯中更新它。
當我查詢完整的項目而不是選擇一個新的對象時,它按照預期填充所有屬性。
爲什麼我必須強制執行ToList()
的查詢才能按預期填充新的ItemSummaryModel
?
var fullItems = RavenSession.Query<Item>().ToList();
var items = (from i in fullItems
where i.DateAdded >= DateTime.Now.Subtract(new TimeSpan(10,0,0,0))
orderby i.DateAdded
select new ItemSummaryModel()
{
Id = i.Id,
PhotoPath = i.ListingPhotoPath,
MarketingInfo = i.MarketingInfoShort,
Name = i.Name,
Summary = i.Summary,
PriceTypeCode = i.ClearancePrice > 0 ? PriceType.Clearance : (i.SalePrice > 0 ? PriceType.Sale : PriceType.List),
ListSaleOrClearancePrice = i.ClearancePrice > 0 ? i.ClearancePrice : (i.SalePrice > 0 ? i.SalePrice : i.Price)
}).Take(nbrOfItems);
return items;