Entity Frameworkの使用に関する質問があります。ヌルオブジェクトの説明を避けるエンティティフレームワーク
別のモデルに接続されているモデルのプロパティにアクセスしたいとします。 "親"オブジェクトがNullの場合、??オペレーターは助けにならない。
例: My Customerモデルの中にCompanyモデルがあります。 Customer.Company.Nameプロパティにアクセスしたいとします。 Customerオブジェクトがすべてnullの場合、nullオブジェクトreffエラーが発生します。オブジェクトがnullの場合
Sample of accessing the property on null object
私は "それが" 返すようにしたいと思います。私はこれがきれいな方法ではないですけど、のような解決策があるかどうかの素敵な存在だろう
(Customer!=null) ? ((Customer.Company!=null) ? Customer.Company.Name ?? "" : "") : ""
??: 一つの解決策は、のような孤独のコードを書くことです親オブジェクト内のヌルも検出します。レイヤンは、(あなたが6 C#を使用している場合は)あなたが
var name = Customer?.Company?.Name;
のようなものを書くことができますコメントで
[C#6](https://msdn.microsoft.com/en -us/magazine/dn802602.aspx)は?を導入しました。演算子 –
クリーンなソリューションの答えはnull演算子です(http://www.informit.com/articles/article.aspx?p=2421572)。残念ながら、それはC#バージョン6以来利用可能です。そうでなければ、既に書かれたものとは別の選択肢はありません。つまり、すべての親を明示的にチェックすることです。 – jambonick
@jambonickまあ、いくつかの代替案があります。あなたは '?'のように少し行動するいくつかのヘルパーメソッドを書くことができます。 – Rawling