2013-09-28 81 views
0

我不知道是否有這樣執行查詢時的任何時間:何時使用手動索引查詢的EF導航屬性?

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

會比建立一個虛擬/導航性能和這樣做是好還是壞:

return report.Document 

凡DocumentId是該桌上的PK。

它們是同一件事嗎?

回答

1

我想說如果這是與報告相關的文件,那麼你沒有理由不做report.Document。你的選項都應該執行相同的查詢。你可以做的,其可以提供一些好處是使用Include

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

這將允許您檢索報告,並在單個查詢它的相關文件。即只要您的代碼達到report.Document,文檔就不會被加載。