Linq To Entites Fehler: Die Entität oder komplexer Typ ... kann nicht konstruiert werden, in eine LINQ to Entities-Abfrage

Ich habe mein Haar ziehen zu versuchen, MVC 3-Music Store-tutorial finden Sie auf der asp.net website.
Im folgenden code versuche ich die Verwendung einer Linq to Entities-Abfrage, um Ergebnisse zu meiner Ansicht "Durchsuchen" aus dem storeController aber ich erhalte diese Fehlermeldung, wenn ich navigieren Sie zu der Seite "durchsuchen":
Die Person oder komplexen Typ 'MvcMusicStore.Modelle.Genre " kann nicht konstruiert werden, in eine LINQ to Entities-Abfrage.

Den code unten funktioniert, wenn ich den Lambda-Ausdruck, der von Ihnen im tutorial, aber ich bin noch komfortabler mit einer Linq-Abfrage. Bitte kann mir jemand erklären warum das nicht funktioniert mit dem folgenden code?

Storecontoller.cs

MusicStoreEntities storeDB = new MusicStoreEntities();
    public ActionResult Browse(string genre)
    {

        //working code used in tutorial
        //var genreModel = storeDB.Genres.Include("Albums")
        //.Single(g => g.Name == genre);

        storeDB.Genres.Include("Albums");
        var genreModel = from p in storeDB.Genres
                         where p.Name == genre
                         select new Genre
                         {
                          GenreId = p.GenreId,
                          Name = p.Name,
                          Description = p.Description,
                          Albums = p.Albums
                         };


        return View(genreModel.Single());

    }

Genre.cs

using System.Collections.Generic;
namespace MvcMusicStore.Models
{
    public class Genre
    {
        public int GenreId { get; set; }
        public string Name { get; set; }
        public string Description { get; set; }
        public List<Album> Albums { get; set; }
    }
}

MusicStoreEntities.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.Entity;

namespace MvcMusicStore.Models
{
    public class MusicStoreEntities : DbContext
    {
        public DbSet<Album> Albums { get; set; }
        public DbSet<Genre> Genres { get; set; }
    }

}

durchsuchen.cshtml

<h2>Browsing Genre: @Model.Name</h2>
<ul>
    @foreach (var album in Model.Albums)
    {
        <li>
            @album.Title
        </li>
    }
</ul>

Vielen Dank
verzweifelt dave

InformationsquelleAutor davey | 2011-04-05
Schreibe einen Kommentar