2

C# プロジェクトでエラーが発生し、頭痛の種になっています。エラーは次のとおりです。

Cannot implicitly convert type 'System.Linq.IQueryable<AnonymousType#1>'
to System.Collections.Generic.IEnumerable<KST.ViewModels.Gallery>'.

これが私の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 };

これが私のビューモデルです。

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

GalleryResults の下で、波線エラーが発生します。

//Create my viewmodel
var Model = new GalleryViewModel
{
    Media = PictureResults,
    Gallery = GalleryResults
};
4

1 に答える 1

7

Ufuk Hacıoğulları が回答を投稿し、数分後に削除しました。彼の答えは正しかったと思います。彼の解決策はエラーメッセージを取り除きます。だから私はそれを再び投稿しています:

Ufuk Hacı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 };
于 2013-01-02T21:21:45.383 に答える