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