Вот несколько вещей, которые я попробовал ... надеюсь, вы сможете извлечь из этого то, что я пытаюсь сделать, и что я делаю неправильно. Итак, у меня возникли проблемы с загрузкой связанных объектов при использовании этого DoQuery:
public ObjectQuery<E> DoQuery(ISpecification<E> where)
{
return (ObjectQuery<E>)_ctx.CreateQuery<E>("[" + typeof(E).Name + "]").Where(where.EvalPredicate);
}
Если я просто воспользуюсь этим, я получу обратно объект, который содержит все надлежащие параметры, кроме тех, которые связаны между собой ... т.е. если один из них является идентификатором пользователя, на который ссылается таблица пользователя, я также не получаю обратно объект пользователя.
Я прочитал, что вы можете сделать .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