Вам необходимо использовать скобки, чтобы применить ToList()
ко всему запросу (объект типа IQueryable
):
public static List<Content> FetchMenu(int websiteID) {
return (from w in ContextHelper.Current.Websites
where w.WebsiteID == websiteID
select w.Contents).ToList();
}
В противном случае вы звоните ToList()
только на w.Contents
, а затем select
применяется. Возможно, будет понятнее, если я покажу синтаксис цепочки методов.
Ваша версия:
ContextHelper.
Current.
Websites.
Where(w => w.WebsiteID == websiteID).
Select(w => w.Contents.ToList());
Правильная версия:
ContextHelper.
Current.
Websites.
Where(w => w.WebsiteID == websiteID).
Select(w => w.Contents).
ToList();
Редактировать
Поскольку w.Contents
является коллекцией, вам нужно выровнять ее с помощью SelectMany
:
public static List<Content> FetchMenu(int websiteID) {
return ContextHelper.
Current.
Websites.
Where(w => w.WebsiteID == websiteID).
SelectMany(w => w.Contents).
ToList();
}