【问题标题】:Safe Navigator using in Iqueryable conditional clause在 Iqueryable 条件子句中使用安全导航器
【发布时间】:2017-07-14 09:20:41
【问题描述】:

ObjectA 是 EF 中的实体。 在这里,我尝试检查 DB 表中是否有任何记录与提供 ObjectB 的匹配 ObjectA 出价属性。

问题是如果 ObjectB 为 null 则返回 null 并检查 null。那么在这种情况下,我想在此之前检查 objectB 是否为空吗?

var result = ObjectA.Any(i => i.Bid == ObjectB?.Id);

【问题讨论】:

  • 那你到底在问什么?
  • 我觉得在这种情况下使用安全导航属性会有问题。人们很容易用它来避免空引用异常,但在这里它给了我一些意想不到的结果,因为如果左侧为空,它会返回空
  • 啊这样我明白了

标签: c# .net entity-framework linq-to-entities


【解决方案1】:

您可以先使用三级条件运算符检查是否为空,语法:Cond?ReturnIfTrue:ReturnIfFalse

var result = ObjectB!=null?ObjectA.Any(i=>i.Bid == ObjectB.Id):null;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-12
    • 2015-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多