查询不存在的引用时出错

时间:2018-04-24 08:32:57

标签: c# asp.net entity-framework-6

我有一个数据库,其中包含表UserUserDetail。表之间的关系是1 : 0..1。用户可以拥有UserDetail。

我首先使用最新的EF模型数据库。

问题:在对非现有引用进行查询时(User没有UserDetail)

var details = User.UserDetail.FirstOrDefault(u => u.userID == 1)

然后我收到错误

  

对象引用未设置为对象的实例

当用户有UserDetail时,一切正常。

如何查询非现有引用以获取var的详细信息?

1 个答案:

答案 0 :(得分:0)

使用此:

User.UserDetail?.FirstOrDefault(...)
nullUser.UserDetail时,

将返回null,而不会尝试取消引用其值并在其上调用函数。

?.被称为null-conditional operator或有时是零安全的导航操作员(甚至是猫王操作员),供您参考。

如果User也可以是null,您可以使用其中的几个来处理这种情况:

User?.UserDetail?.FirstOrDefault(...)