2

ナビゲーションプロパティでキーワードバーチャルを使用するときに知っておきたいのは、私はそれが怠惰な読み込みであることを学んだが、asp.net Webアプリケーションコアを作成するhttps://docs.asp.net/en/latest/data/ef-mvc/intro.htmlのチュートリアルを読んでいるもはやその仮想を使用していません。 古いバージョン(MVC4、MVC5)でチェックしましたが、常にそこにありますが、コアにはありません。 誰も私に説明することができますか? ありがとうございます。ナビゲーションプロパティでバーチャルを使用

答えて

2

エンティティで仮想プロパティを使用するため、Entity Frameworkは実行時にエンティティから継承し、オーバーライドされたプロパティにスタブを挿入するプロキシクラスを作成できます。このスタブは、コードからプロパティのゲッターにアクセスするとデータベース呼び出しを行います。

Entity Framework Coreは遅延読み込みをサポートしていません(まだ、おそらく決してありません)。プロパティを仮想としてマークする理由はありません。

参照:公式ドキュメントのLoading Related Data - Entity Framework Core 1.0.0 Documentation、GitHubのLazy Loading · Issue #3797 · aspnet/EntityFramework · GitHub、GitHubのWhy use 'virtual' for class properties in Entity Framework model definitions?ここStack Overflow。

+1

'おそらく決してないだろう - なぜか?何か情報源がありますか? – Maarten

+1

@Maarten [ロードマップは言及しています](https://github.com/aspnet/EntityFramework/wiki/Roadmap)、Rowan Miller(および他の人は、IIRC)は、 _について](https://github.com/aspnet/EntityFramework/issues/3797#issuecomment-158479567)。それは決定的な「いいえ」ではありませんが、それが実現するかどうかは確かではありません。 – CodeCaster

関連する問題