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;
}
更新
我开始认为实现这一目标的方法(经验证可行)是创建一个名为UserStory的POCO。新类有2个属性:一个是Story类型,另一个是UserName。然后,我可以毫无问题地返回一个IQueryable的UserStory。
那很好;但是,我仍然不明白为什么这种方法会起作用而我的另一种方法不起作用。另一种是将字符串UserName的属性添加到我的部分类Story中,并在层之间传递该对象。有什么不同?
答案 0 :(得分:0)
以下链接指向博客文章,描述了与您类似的问题。似乎解决方案是返回一个从Story而不是Story类型中隐含的类型:
希望这有帮助。