Wie kann ich diese Eager Loading tun in diesem Code (die .INCLUDE () Methode verwendet wird)?

StackOverflow https://stackoverflow.com/questions/1781738

Frage

Ich habe ein sehr einfaches Repository ich bin herumspielen, mit Entity Framework v4, die 2 mit VS2010 Beta kommt.

Ich versuche, dynamisch das Verfahren einschließen, wenn ein Benutzer optional danach fragt.

zB.

Public IQueryable<Foo> GetFoos(bool includeBars)
{
    var entites = new Entities("... connection string ... ");

    var query = from q in entities.Foos
                select q;

    if (includeBars)
    {
        // THIS IS THE PART I'M STUCK ON.
        // eg. query = from q in query.Include("Bars") select q;
    }

    return (from q in query
            select new Core.Foo
            {
                FooId = q.FooId,
                CreatedOn = q.CreatedOn
            });
 }

Kann mir jemand bitte helfen?

War es hilfreich?

Lösung

Sie tun gut, nur Sie cast „Abfrage“ von IQueryable zu Object haben würde:

query = from q in ((ObjectQuery<Foo>)query).Include("Bars") select q;

Nicht sicher, ob es gute Idee ist, die Besetzung innerhalb von Linq-Abfrage zu tun, aber ich denke, Sie werden den Punkt, was getan werden muss.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top