0

当我尝试运行我的代码时收到以下错误。我还没有解决它,请帮助:

编辑:用 * 标记失败。>

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;
4

2 回答 2

1

改变

IQueryable<Video> query =

IQueryable<Appname.Models.Video> query =

您的错误的原因是您定义了两次 Video 类型,并且由于使用了短类型名称,您不小心引用了您应该引用的一个 Video。

还要在方法的返回值中更改它

public IQueryable<Appname.Models.Video> GetVideos( ... )
于 2013-05-24T19:57:08.650 回答
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>

于 2013-05-24T20:10:52.587 回答