linq-to-sql - linq如何决定内部连接和外部连接

通常 linq 对其查询使用左外连接,但在某些情况下,它决定改用内连接。 我有一种情况,该决定会导致错误的结果,因为第二个表并不总是有合适的记录,并且会从第一个表中删除记录。 我在 dbml 上使用 linqdatasource,其中相关表是相同的,但其中一个包含从第一个表中删除的历史记录。两者都有相同的主键。我正在使用数据加载选项一次加载两个表,而无需往返。

你能解释一下为什么 linq 决定在这里使用内部连接吗?

谢谢

最佳答案

不,不幸的是你错了。 LINQ Join 运算符始终执行内部联接。 http://www.hookedonlinq.com/JoinOperator.ashx

如果要做左外连接,需要结合使用select或foreach。请参阅以下示例:

  • http://solidcoding.blogspot.com/2007/12/left-outer-join-in-linq.html
  • http://social.msdn.microsoft.com/Forums/en-US/linqprojectgeneral/thread/c139313e-d745-4e1d-b3dc-ab355507eb48

或者谷歌一下,那里有很多例子。

https://stackoverflow.com/questions/2528523/

相关文章:

git - 如何使用 ssh 将 repo 克隆到远程服务器

ruby-on-rails - rails : Expected helper to define

erlang - Erlang 中的尾递归

apache - 在 ReverseProxy 上下文中切换 SSLVerifyClient

python - python 中的 Rfc 1123

modeling - Data Vault 模型什么时候是数据仓库的正确模型?

c# - 以特定时间间隔从视频(mpg、wmv 等)中捕获帧

sql-server - SQL 错误 : Verify that the instance nam

python - 压缩存档,可快速访问单个文件

visual-studio-2008 - 如何在同一解决方案的不同项目中使用相同的obj文件