Возникли проблемы при загрузке связанных сущностей (Eager Load) с ObjectContext.CreateQuery (Entity Framework и Repositories)

Вот куча вещей, которые я попробовал ... надеюсь, вы сможете извлечь из этого то, что я пытаюсь сделать, и что я делаю неправильно. Итак, у меня проблемы с загрузкой связанных сущностей при использовании этого DoQuery:

   public ObjectQuery<E> DoQuery(ISpecification<E> where)
   {
        return (ObjectQuery<E>)_ctx.CreateQuery<E>("[" + typeof(E).Name + "]").Where(where.EvalPredicate);
   }

Если я просто использую это, я получаю объект обратно, который содержит все надлежащие параметры, за исключением тех, которые связаны между собой ... т.е. если один из них является UserID, который ссылается на таблицу User, я также не получаю обратно объект User.

Я прочитал, что вы можете сделать .Include ("Пользователь"), чтобы сделать Eager Load объекта ... но он не работает, когда я пытаюсь это:

public ObjectQuery<E> DoQuery(ISpecification<E> where)
{
     return (ObjectQuery<E>)_ctx.CreateQuery<E>("[" + typeof(E).Name + "]").Include("User").Where(where.EvalPredicate);
}

Я также проверил, чтобы удостовериться, что Имя набора сущностей и название модели - «Пользователь». Единственное, о чем я мог подумать, это поместить несколько вещей в("[" + typeof(E).Name + "]") но я не уверен, как включить туда несколько объектов ... Вот что я пробовал, так как увидел, что кто-то сказал, что вы можете загрузить несколько объектов, поставив между.

public ObjectQuery<E> DoQuery(ISpecification<E> where)
{
     return (ObjectQuery<E>)_ctx.CreateQuery<E>("[" + typeof(E).Name + "].[User]").Where(where.EvalPredicate);
}

Но это не сработало ...

Если я не на правильном пути, пожалуйста, дайте мне знать. Кто-нибудь знает, как загрузить связанные объекты при использовании ObjectContext.CreateQuery? Любые предложения или понимание помогает.

Спасибо,
Matt

Ответы на вопрос(2)

Ваш ответ на вопрос