首页 > 解决方案 > 实体框架在加入可为空的字段时不返回任何数据,即使基础查询确实返回数据

问题描述

我从 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 可以为空,但实际上对于指定的团队 ID 不为空的问题。

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

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

标签: .netvb.netentity-frameworkentity-framework-6

解决方案


推荐阅读