0

次のようなクエリを実行するときがあるかどうか疑問に思っています。

var documentId = report.DocumentId;
return db.Documents.Find(documentId);

virtual/nav プロパティを設定してこれを行うよりも良いか悪いか:

return report.Document

DocumentId はそのテーブルの PK です。

それらは同じものですか?

4

1 に答える 1

1

あなたが求めているのがレポートに関連するドキュメントであれば、そうしない理由はないと思いますreport.Document. 両方のオプションで同じクエリを実行する必要があります。いくつかの利点を提供する可能性のあるあなたができることは、次を使用することIncludeです:

db.Reports.Include(x => x.Document).First(report => report.Id == id)

これにより、レポートとその関連ドキュメントを 1 回のクエリで取得できます。つまり、コードが に到達するたびにドキュメントが遅延ロードされることはありませんreport.Document

于 2013-09-29T00:17:15.083 に答える