Entity framework 在数据库的一次访问中获取不相关的实体

Entity framework 在数据库的一次访问中获取不相关的实体,entity-framework,Entity Framework,我有3个彼此不相关的实体,我想在一次访问数据库的过程中获得所有这些实体。我如何才能做到这一点 谢谢您可以使用: var result = from foo in ctx.Foos from bar in ctx.Bars where foo.id == xxx && bar.id == yyy select new { Foo = foo, Bar = bar}; 这将在同一查询中获取特定的f

我有3个彼此不相关的实体,我想在一次访问数据库的过程中获得所有这些实体。我如何才能做到这一点

谢谢

您可以使用:

 var result = from foo in ctx.Foos
              from bar in ctx.Bars
              where foo.id == xxx && bar.id == yyy
              select new { Foo = foo, Bar = bar};
这将在同一查询中获取特定的foo和bar。
尽管如此,这将生成一些效率相当低的SQL,因此我不推荐使用它。

如果您从纯关系数据库检索数据,您应该查看是否可以在一个查询中检索多个结果集。或者,如果您可以获取不规则的结果,请在具有相应形状的树结构中检索这些结果

如果与数据库的连接不够智能,则可以使用结果的通用联接,然后返回以某种形式标记的联合查询,以标识哪个结果来自哪个表


您不需要说明减少往返的原因,但也可以使用存储过程之类的方法在服务器上收集所需的数据,然后将其返回到一个结果集中。

您可以使用未来的查询扩展方法。这可以按要求完成工作。

您能提供更多信息吗?你到底想做什么?为什么/如何需要以这种格式返回数据?你到底想做什么?如果你认为它会提高性能,那就不会了。实际上,我只想找回包含主要信息的主要实体,并获取其他两个实体,它们也包含我必须向最终用户展示的一般信息,所以我不想多次访问数据库来获取所有三个实体。这听起来像是过早的优化。@Craig Stuntz:如果它们是三个不相关的实体,真的有什么需要优化的吗?我认为这绝对是错误的选择。