我有一个非常基本的 Linq 查询,如果我在 Visual Studio 或 IIS 服务器上本地执行它,它不会返回相同的结果 - 但总是针对同一个数据库服务器。我使用 SQL Server Profiler 来跟踪执行的真实 SQL 查询,发现在本地或远程执行时并不相同!
在本地它使用左连接,而远程它使用内连接 - 因此它在本地返回一条记录,但不是远程。我认为良好的行为将是第二个,因为我在 TableA 和 TableB 之间定义了一个不可为空的外键。以下是 Linq 请求:
from a in TableA.Include("TableB.TableC")
where a.Id == someId
select a;
事实上,第一个连接总是转换为内连接,但第二个在本地执行时是左连接。
但我的首要任务是知道为什么它会在本地和远程生成不同的查询。框架版本相同,实体框架版本相同(本地复制)......一定有一些不同但我找不到什么!你有什么线索吗?
先感谢您。