0

最近、アプリケーションでLazyLoadingをオフにしました。これは、送信するSQLクエリの量をより認識できるようになることを望んでいたためです。問題は、エンティティにアクセスしようとする前にどこかでエンティティをロードするのを忘れると、(例外ではなく)nullを返すだけであるということです。これは、私のロジックが値がnullであると誤って想定していることを意味し、フローの後半であらゆる種類の問題を引き起こします。

IsLoadedフラグがあることは知っていますが、まずボイラープレートコードを追加する必要があります。次に、これはまだ確認するのを忘れることができるものです。

アンロードされたナビゲーションプロパティにアクセスするときに、Entity Frameworkが自動的に例外をスローするようにすることは可能ですか?私には正しい方法のようですが、エンティティがロードされていないという事実を無視して、プログラムを続行させたいのはなぜですか?

それとも私は間違った方向に考えていますか?:|

(ところで、EntityCollectionsは、何も問題がないように空のリストを返すだけなので、さらに悪いです)

4

1 に答える 1

0

いいえ、それを自動的に行う方法はありません。理論的には、カスタム T4 テンプレートを作成してエンティティを生成IsLoadedし、すべてのプロパティ ゲッターをチェックインできます。POCO アプローチを使用する場合、そのようなチェックは POCO ルールを破り、エンティティを EF に依存させるため、これは役に立ちません。EntityObjectベースのエンティティを使用している場合は、そのようなアプローチを試すことができます。

于 2012-04-14T13:08:52.720 に答える