我尝试运行代码时收到以下错误。我还没有设法解决它,请帮助:
编辑:标记*失败的地方。 >
public IQueryable<Video> GetVideos([QueryString("id")] int? categorieId)
{
var _db = new TeleviziuneAcademicaAspSilverlight.Models.VideoContext();
IQueryable<Video> query = *_db.Videos;*
if (categorieId.HasValue && categorieId > 0)
{
query = query.Where(v => v.CategorieID == categorieId);
}
return query;
答案 0 :(得分:1)
更改
IQueryable<Video> query =
到
IQueryable<Appname.Models.Video> query =
你的错误的原因是你有两次类型视频定义,并且由于使用短类型名称,你不小心引用了你应该的视频。
同样在方法的返回值
中更改它public IQueryable<Appname.Models.Video> GetVideos( ... )
答案 1 :(得分:0)
您似乎有两个名为Video
的课程。如果你需要两者,你需要在返回声明之前从一个投射到另一个:
return query.Select(dbVideo => new Appname.Video()
{
Prop1 = dbVideo.Prop1,
Prop2 = dbVideo.Prop2,
// etc.
});
如果您这样做,可能需要将返回类型更改为IEnumerable<>
。
如果您可以使用Appname.Models.Video
,请在方法签名和方法正文中将IQueryable<Video>
更改为IQueryable<Appname.Models.Video>
。