私が収集した限りでは、エンティティへのLINQは、Load()
またはを熱心にロードすることを推奨していInclude()
ます。ただし、多層アプリケーションで積極的な読み込みをどこで行う必要があるのでしょうか。
Item GetItem(int id)
データアクセス層(エンティティインスタンスをカプセル化するリポジトリクラス)が総称機能を持ち、ビジネスロジック層ではそうするのは正しいですか?
Item item = dbRepository.GetItem(itemId);
if (!item.itemDetails.IsLoaded)
item.itemDetails.Load()
または、リポジトリクラスに、さまざまな外部関係をロードするさまざまな明示的な関数を含める必要があります。したがって、熱心にロードされた関係のアイテムを返しますか?
どうもありがとう!
編集: 例-http ://www.asp.net/learn/mvc/tutorial-29-cs.aspx
public Contact GetContact(int id)
Contact
この関数はエンティティタイプを返します。ただし、ビジネスロジックのニーズに応じて、エンティティの外部関係を変更したいLoad()
場合があります。この要件は、ロードするリレーションを示すパラメーターを使用して、よりオーバーロードされたメソッドが必要であることを意味しますか、それとも単にビジネスロジックで実行しますか?Include()
Contact
GetContact()
Load()