2009-11-23 2 views
0

У меня есть очень простой репозиторий Я играл вокруг с помощью Entity Framework v4, которая поставляется с VS2010 Beta 2.Как я могу сделать это Eager Loading (используя метод .Include()) в этом коде?

Я пытаюсь динамически включать в себя метод Include, если пользователь необязательно просит.

например.

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

Может ли кто-нибудь помочь?

ответ

3

Вы делаете хорошо, только вы должны бросить «запрос» от IQueryable к ObjectQuery:

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

Не уверен, что это хорошая идея, чтобы сделать бросок внутри Linq запроса, но я думаю, что вы будете понять, что нужно сделать.

 Смежные вопросы

  • Нет связанных вопросов^_^