通常 linq 对其查询使用左外连接,但在某些情况下,它决定改用内连接。 我有一种情况,该决定会导致错误的结果,因为第二个表并不总是有合适的记录,并且会从第一个表中删除记录。 我在 dbml 上使用 linqdatasource,其中相关表是相同的,但其中一个包含从第一个表中删除的历史记录。两者都有相同的主键。我正在使用数据加载选项一次加载两个表,而无需往返。
你能解释一下为什么 linq 决定在这里使用内部连接吗?
谢谢
最佳答案
不,不幸的是你错了。 LINQ Join
运算符始终执行内部联接。 http://www.hookedonlinq.com/JoinOperator.ashx
如果要做左外连接,需要结合使用select或foreach。请参阅以下示例:
或者谷歌一下,那里有很多例子。
https://stackoverflow.com/questions/2528523/