gpt4 book ai didi

c# - 包含对与不同上下文关联的查询的引用的 LINQ 表达式

转载 作者:太空狗 更新时间:2023-10-30 00:56:42 27 4
gpt4 key购买 nike

我有这个问题:

var list = (from t1 in context1.SomeTable
join t2 in context2.SomeTable on t1.ID equals t2.ID
where //some where clause
select new { t1.SomeField, t2.SomeField }).ToList());

当这个查询试图执行时我会得到这个错误:

The specified LINQ expression contains references to queries that are associated with different contexts.

  1. 为什么 LINQ to Entities 不允许这样做?
  2. 是否仍然可以通过其他方式使用 LINQ to Entities
  3. 解决这个问题的方法是什么?

最佳答案

我想这是因为您正在构建的语句在后台转换为 SQL 并在数据库上运行。由于不同的上下文可能来自不同的数据库甚至不同的服务器,因此无法保证在查询服务器时 context2 中的数据对 context1 可用。

您可以从每个上下文返回数据并转换为 IEnumerable,然后执行标准的 linq 查询,但是您有明显的数据传输和内存处理开销,否则这些开销将由数据库引擎执行。

关于c# - 包含对与不同上下文关联的查询的引用的 LINQ 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7024100/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com