4

我的应用程序使用的是 SQL Server 2008,我们需要为用户添加功能,以便可以选择将任何大小的文件保存到数据库表中。我已经设置了类似于这种格式的表格:

  • FileStorageID - int (indentity PK)(这也是不同表的外键)
  • 文件数据 -varbinary(max)
  • 文件名 -varchar(1000)

FileStorage表与另一个表具有零对一的关系Documentation。这个想法是用户可以编写一些文本,上传文件,或两者兼而有之。

此表如下所示:

  • DocumentationID - int (identity PK, FK 到“IrrelevantInterestingObject”表)
  • 文本 -varchar(max)
  • FileStorageID -int (FK到前面提到的 FileStorage 表)

我的问题是:当我Documentation使用 Entity Framework 5 查询表时,数据库中存在一个文件,整个文件是否会存储在内存中?如果是,那么在出现明显的性能问题之前合理的阈值是多少?

4

1 回答 1

4

如果您查询Documentation表,则不会加载相关FileStorage表中的数据,直到您通过急切、显式或延迟加载加载关系。一旦您使用任何此类方法或FileStorage直接查询FileData,每个检索到的记录都会被加载到内存中。

于 2012-10-15T22:08:07.817 回答