Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 即使基础查询返回数据,实体框架在连接到可为null的字段时也不返回数据_.net_Vb.net_Entity Framework_Entity Framework 6 - Fatal编程技术网

.net 即使基础查询返回数据,实体框架在连接到可为null的字段时也不返回数据

.net 即使基础查询返回数据,实体框架在连接到可为null的字段时也不返回数据,.net,vb.net,entity-framework,entity-framework-6,.net,Vb.net,Entity Framework,Entity Framework 6,我从EntityFramework得到了一个令人困惑的结果。我有以下疑问: Dim dbTeamAndContact1 = ( From t In db.Teams.Where(Function(x) x.TeamId = 123456) Join c In db.Contacts On t.ContactId Equals c.ContactId Select New With {.Team = t, .Contact = c} ). FirstOrDefault 这是一个非常简单的连接,可

我从EntityFramework得到了一个令人困惑的结果。我有以下疑问:

Dim dbTeamAndContact1 =
(
From t In db.Teams.Where(Function(x) x.TeamId = 123456)
Join c In db.Contacts
On t.ContactId Equals c.ContactId
Select New With {.Team = t, .Contact = c}
).
FirstOrDefault
这是一个非常简单的连接,可能存在这样的问题:Team.ContactId可以为null,但对于指定的Team id,实际上不是null

当我运行它时,我从实体框架中得到Nothing/null。但是,当我获取EF正在使用的底层SQL语句并直接对数据库运行该语句时,它是一个直接的内部JOIN语句,返回预期的团队和联系人。但不知何故,EF在将这些数据返回到客户端代码时会感到困惑


我看不出代码有什么问题。这里发生了什么?

仔细检查查询是否针对您期望的数据库执行。运行时的连接字符串可能指向不同的数据库。对数据库运行探查器以捕获正在运行的确切SQL,然后对同一数据库运行它。如果它同时返回团队和联系人的数据,但EF没有同时填充其中一个/两个,则会发生一些奇怪的事情。您是否考虑过利用导航属性,以便团队可以参考其联系人?(通常比显式联接更容易处理)是的,这就是问题所在。一个不相关的中间件让我指向了错误的数据库,该数据库有足够相似的数据,不明显,但差异足以导致此问题。我应该使用导航属性,但我还没来得及了解它们是如何工作的。