0

我想知道是否有时间执行这样的查询:

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

比设置虚拟/导航属性并执行以下操作更好或更差:

return report.Document

其中 DocumentId 是该表上的 PK。

它们是一样的吗?

4

1 回答 1

1

我会说,如果它是与您所追求的报告相关的文件,那么没有理由不这样做report.Document。您的两个选项都应该执行相同的查询。您可以做的可能会带来一些好处的方法是使用Include

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

这将允许您在单个查询中检索报告及其相关文档。即,只要您的代码到达,文档就不会延迟加载report.Document

于 2013-09-29T00:17:15.083 回答