This may be common knowledge but I’ve never seen it online.

[MaybeNull] public Entity Entity { get; set; }

You now get a warning when accessing without a check and when setting to null.

Sadly you still need to ! in quries

  • nebeker
    link
    fedilink
    English
    arrow-up
    2
    ·
    5 days ago

    I think .NET and EF should handle navigation property nullabiloty better out of the box, especially when you explicitly set the foreign key to long?.

    That said, while I understand these relationships in my own projects, adding clear annotations is very helpful for colleagues who may have to provide support in the future. That could even be me!

    So there’s no perfect solution in this stack, but anything that makes a developer’s intent clearer helps. Privilege of least surprise, right?

    • GetOffMyLanOP
      link
      fedilink
      arrow-up
      2
      ·
      4 days ago

      Exactly.

      What we need is someone to create an analyzer that recognises when you are writing an ef query or if you’ve included and disabled the warnings.

      The actual issue is using the same model for the database and query results. I.e. it’s not nullable in the database but could be after a query. But there’s no nice way to implement this without mapping everything to a dto.