0
首先,我有這些模型: Excuting查詢:「LINQ到Entitites不能識別方法‘System.Object的的getItem(System.String)’」
我在我的控制,我這個查詢要把查詢結果到視圖模型:
var query = (from d in db.ObjectCategories
join a in db.MatchingObjects on d.Id equals a.ObjectCategoryId into grp3
join b in db.Unlocks
on d.Id equals b.ObjectCategoryId into grp1
from m in grp1.DefaultIfEmpty()
join c in db.Members
on m.StudentId equals c.Id into grp2
from n in grp2.DefaultIfEmpty()
where m.ObjectCategoryId == null
&& n.Id == null
&& n.Id == (int)Session["UserId"]
orderby d.Id
select new LockedCatListViewModel()
{
AnimalCategory = d.CategoryName,
AnimalCategoryId = d.Id,
Animals = d.MatchingObjects
}).AsEnumerable()
.Select(x=> new LockedCatListViewModel()
{
AnimalCategory = x.AnimalCategory,
AnimalCategoryId = x.AnimalCategoryId,
Animals = x.Animals
});
return View(query.ToList());
視圖模型:
public class LockedCatListViewModel
{
[Display(Name = "Animal Category Name")]
public string AnimalCategory { get; set; }
public int AnimalCategoryId { get; set; }
public virtual ICollection<MatchingObject> Animals { get; set; }
}
然而,每當我想循環內的項目在視圖頁面模型,或者只是回到這個模型視圖頁面,我得到了以下錯誤:
我已經嘗試了許多不同的方法,我不知道應該我LINQ查詢內部完成,以得到我的LINQ查詢的結果?
問題通過分配會話到一個變量解決,並把變量LINQ的內部。
我想我有一個不正確的LINQ查詢這部分
&& n.Id == null
&& n.Id == (int)Session["UserId"]
嗨,阿什莉梅德韋感謝您的回覆,它的作品就像一個魅力。 –
沒問題,當你需要調用一個方法時,你會發現它需要在Linq之外完成,而Session [「foo」]實際上是一個方法調用。 –