public IQueryable<Story> FindAllStories(){
var stories = (from s in db.Stories
orderby s.DateEntered descending
select new Story
{
Title = s.Title,
UserName = s.aspnet_User.UserName
}
);
return stories;
}
Мне нужно передать это как IQueryable, чтобы помощник по нумерации страниц, который я нашел в Интернете, мог извлекать только те элементы, которые мне нужны Проблема в том, что во время выполнения, когда помощник пытается сделать source.Count (); компилятор не очень доволен, потому что это «явное создание запроса типа сущности».
Как бы я изменил этот метод LINQ to SQL, чтобы этого не произошло?
Кроме того, чтобы помочь мне понять это, почему предыдущий код не работает, а этот работает?
public IQueryable<Story> FindAllStories(){
var stories = (from s in db.Stories
orderby s.DateEntered descending
select s);
return stories;
}
Обновление
Я начинаю думать, что способ сделать это (проверено, что это работает) - создать POCO с именем UserStory. Новый класс имеет 2 свойства: одно типа Story, а другое - UserName. Затем я могу без проблем вернуть IQueryable из UserStory.
Это прекрасно; однако я до сих пор не понимаю, почему этот метод будет работать, а мой другой нет. Другой - добавить свойство строки UserName в мой частичный класс Story и передать этот объект между слоями. Какая разница?