当我调查Include
和Join
之间的区别时,我发现:
如果DB 不包含外键 - 它没有导航属性,所以最好使用Join
如果它有导航属性 - 那么使用Include
。(它还可以节省一个db查询。)
但这里的一个答案引起了我的注意:
Include是作为join实现的。根据所包含的链接的空值性质,它是内连接还是左连接。
问题:
空值如何影响左/内连接?
在Sql Server中,我可以有一个Cities
表和一个Persons
表,一个人可以有一个NULL
的CityID
。
为什么Entity Framework决定了什么样的连接适合我?
编辑:可视化表述:
现在让我们将CityId更改为非空:
这是变化: