Mad*_*r24 10 c# linq asp.net asp.net-mvc asp.net-mvc-3
我有一个LINQ查询,它返回与我的PictureGallery类匹配的结果.我需要将它们加载到我的ViewModel但我得到以下错误:
无法将类型'System.Linq.IQueryable'隐式转换为'System.Collections.Generic.IEnumerable'.存在显式转换(您是否错过了演员?)
我是C#的新人.如何将"结果"投射到我的"PictureGallery"viewmddel类中?
提前致谢!
控制器:
//Test MediaID
var MediaID = 75;
//Query Results
var Results = from g in DB.Galleries
              join m in DB.Media on g.GalleryID equals m.GalleryID
              where g.GalleryID == GalleryID
              orderby m.MediaDate descending, m.MediaID descending
              select new { g.GalleryTitle, Media = m };
//Create my viewmodel
var Model = new GalleryViewModel
{
    MediaID = MediaID,
    PictureGallery = Results, //This line throws the error.
    PictureCount = Results.Count()
};
的ViewModels:
public class GalleryViewModel
{
    public int? MediaID { get; set; }
    public IEnumerable<PictureGallery> PictureGallery { get; set; }
    public int PictureCount { get; set; }
}
public class PictureGallery
{
    public int GalleryID { get; set; }
    public string GalleryTitle { get; set; }
    public int MediaID { get; set; }
    public string MediaTitle { get; set; }
    public string MediaDesc { get; set; }
    public double Rating { get; set; }
    public int Views { get; set; }
}
Ham*_*yan 17
将您的查询改为:
//Query Results
var Results = from g in DB.Galleries
              join m in DB.Media on g.GalleryID equals m.GalleryID
              where g.GalleryID == GalleryID
              orderby m.MediaDate descending, m.MediaID descending
              select new PictureGallery {
                                GalleryID = g.GalleryId,
                                GalleryTitle = g.GalleryTitle,
                                MediaID = m.MediaID,
                                MediaTitle = m.MediaTitle,
                                MediaDesc = m.MediaDesc,
                                Rating = m.Rating,
                                Views = m.Views} ;