Wie kann ich diese Eager Loading tun in diesem Code (die .INCLUDE () Methode verwendet wird)?
-
21-09-2019 - |
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?
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