L'entité ou de type complexe ... ne peuvent pas être construits en une requête LINQ to entities

Pourquoi une méthode de travail, mais pas de l'autre, quand il semble qu'ils sont tous les deux à faire la même chose, à savoir la construction d'une entité. Ma question alors, est-il un moyen de construire de l'entité dans une L2E requête au lieu d'utiliser la juste Linq ou même les deux?

Cela fonctionne bien...

var queryToList = (from ac in ctx.AuthorisationChecks
                   where wedNumbers.Contains(ac.WedNo)
                   orderby ac.WedNo, ac.ExpAuthDate, ac.ActAuthDate
                   select new AuthorisationCheck
                   {
                       Blah = ac.Blah
                   }).ToList();

model.AuthorisationChecks = queryToList.Select(x => new AuthorisationCheck
    {
        Blah = x.Blah
    }).ToList();

Cependant, si je change...

var queryToList

à

model.AuthorisationChecks queryToList //Of type List<AuthorisationCheck>

je reçois le message d'erreur dans le Titre...

The entity or complex type 'Model.AuthorisationCheck' cannot be constructed in a LINQ to Entities query.

EDIT:
Dans le modèle, il est tout simplement, rien de compliqué ici.

public List<AuthorisationCheck> AuthorisationChecks { get; set; }

EDIT2:
Rangé cela un petit peu (ce qui fonctionne très bien)...

model.AuthorisationChecks = (from ac in ctx.AuthorisationChecks
                             where wedNumbers.Contains(ac.WedNo)
                             orderby ac.WedNo, ac.ExpAuthDate, ac.ActAuthDate
                             select ac).ToList()
                             .Select(x => new AuthorisationCheck
                             {
                                 Blah = x.Blah
                             }).ToList();

EDIT2: Ma Solution
Je n'étais pas heureux avec l'anonyme de type méthode et s'en est allé de l'avant et a créé un modèle simple ne contenant que les propriétés requises pour être utilisé dans le viewmodel.

Changé le type de modèle.AuthorisationChecks

de

List<AuthorisationCheck> //List of Entities

à

List<AuthorisationCheckModel> //List of models

qui permet le code suivant pour le travail, et sans profilage, il semble beaucoup plus rapide que d'utiliser un type anonyme (et bien sûr, je ne jette pas d'une liste à deux reprises!).

model.AuthorisationChecks = (from ac in ctx.AuthorisationChecks
                             where wedNumbers.Contains(ac.WedNo)
                             orderby ac.WedNo, ac.ExpAuthDate, ac.ActAuthDate
                             select new AuthorisationCheckModel
                             {
                                 Blah = x.Blah
                             }).ToList();

P. S. j'ai été une fois averti par un collègue (qui a l'habitude de travailler pour Microsoft) que ce n'est pas une bonne idée d'utiliser directement les Entités de cette manière, c'était peut être l'une des raisons pour lesquelles il a été la pensée de l', j'ai aussi remarqué un comportement étrange à l'aide des Entités directement dans les autres cas (principalement des corruptions).

vous devez writre model.AuthorisationChecks =

OriginalL'auteur Paul Zahra | 2015-03-11