无法隐式转换类型'System.Linq.IQueryable <AnonymousType#1>'

Mad*_*r24 3 c# linq asp.net-mvc

我在C#项目中遇到错误,这让我很头疼.错误是:

Cannot implicitly convert type 'System.Linq.IQueryable<AnonymousType#1>'
to System.Collections.Generic.IEnumerable<KST.ViewModels.Gallery>'.
Run Code Online (Sandbox Code Playgroud)

这是我的LINQ查询:

//Get Single Picture
var PictureResults = (from m in DB.Media where m.MediaID == 450 select m).SingleOrDefault();

//Get Gallery Pictures and Gallery Title
var GalleryResults = from g in DB.Galleries
                     join m in DB.Media on g.GalleryID equals m.GalleryID into gm
                     where g.GalleryID == 100
                     select new { g.GalleryTitle, Media = gm };
Run Code Online (Sandbox Code Playgroud)

这是我的视图模型.

public class GalleryViewModel
{
    public Media Media { get; set; }
    public IEnumerable<Gallery> Gallery { get; set; }
}

public class Gallery
{
    public string GalleryTitle { get; set; }
    public int MediaID { get; set; }
    public int GalleryID { get; set; }
    public string MediaGenre { get; set; }
    public string MediaTitle { get; set; }
    public string MediaDesc { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

在GalleryResults下发生了斜线错误:

//Create my viewmodel
var Model = new GalleryViewModel
{
    Media = PictureResults,
    Gallery = GalleryResults
};
Run Code Online (Sandbox Code Playgroud)

Cod*_*odo 7

UfukHacıoğulları已经发布了一个答案并在几分钟后删除了它.我认为他的回答是正确的,他的解决方案摆脱了错误信息.所以我再次发布它:

UfukHacıoğulları的回答;

您正在投射一系列匿名类型而不是Gallery.只需在select语句中实例化Gallery对象即可.

var GalleryResults = from g in DB.Galleries
                     join m in DB.Media on g.GalleryID equals m.GalleryID into gm
                     where g.GalleryID == 100
                     select new Gallery { GalleryTitle = g.GalleryTitle, Media = gm };
Run Code Online (Sandbox Code Playgroud)