さて、Includeを使用して関連オブジェクトをロードするように指示するエンティティフレームワーククエリがあります。
var employees = _entities.Employees.Include("Manager").ToList()
includeを使用することで、すべての従業員のマネージャーレコードに対してクエリを生成することを回避します(代わりに、クエリでフレンドリーなJOINが使用され、データベースが再び煩わされることはありません)。
しかし、マジックストリング「Manager」の使用は、特に、おそらくより原始的で、迅速で汚いLinq2SQLから来た後は、不安になります。コーディングの観点からは、それはロードされた銃のようなものであり、コンパイル時にキャッチされるべきであったランタイム例外をスローする準備ができています。また、リファクタリングに大きなダンパーをかけます。
これを回避するための組み込みのプロパティまたはメソッドはありますか?たとえばManager.EntityKeyPropertyName
、静的な文字列プロパティとして表示されますが、これは私が望んでいるものではないようです。ハードコードされた定数のリストを手動でどこかに追加したくないのですが、裸のインテリセンスブラインドマジックストリングよりも優れています。