这是我尝试过的一堆事情......希望你能从中推断出我正在尝试做什么以及我做错了什么。好的,所以我在使用此 DoQuery 时加载相关实体时遇到问题:
public ObjectQuery<E> DoQuery(ISpecification<E> where)
{
return (ObjectQuery<E>)_ctx.CreateQuery<E>("[" + typeof(E).Name + "]").Where(where.EvalPredicate);
}
如果我只是使用它,我最终会得到一个包含所有正确参数的对象,除了相关实体的参数......即。如果一个是引用到 User 表的 UserID,我也不会取回 User 对象。
我读到您可以执行 .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 时如何加载相关实体?任何建议或见解都会有所帮助。
谢谢,
马特