我尝试搜索谷歌和这个网站,但很难找到正确的,所以这可能已经被问到并在某处得到了解答,但我找不到它。
无论如何,我继承了一些代码,用于使用image数据类型将文档存储在SQL 2005数据库中来保存文档。我们有一个LINQ方法查询返回所有列的表,包括文档列可能会使这个操作变得非常昂贵,特别是因为我们在使用此方法时从不在客户端使用文档列。
以下是当前代码的片段:
rtnList = (from c in pdc.View_ActiveDocumentRepositories
select new Document(c.ItemId, c.DocumentId, c.Extentsion, c.Filename, c.Document.ToArray(),
c.ModifiedDate, c.ModifiedBy, dSvc.GetStatus(c.Status), c.ApprovedDate, c.ApprovedBy,
c.Active)).ToList();
为了减少这种方法的负担,我想忽略Document列。我可以看到一些方法:
关于最佳答案的任何想法?感谢。
答案 0 :(得分:1)
如果pdc.View_ActiveDocumentRepositories
返回IQueryable
,则从select new
删除文档应将其从生成的select子句中删除。
(我说'应该',因为很明显我无法看到存储库中发生了什么。)
这种方法的缺点是,每次查询此存储库时都必须考虑忽略BLOB。我们可以开始讨论通过存储库公开IQueryable,但简而言之,我会让你的存储库有一个专用的方法来检索'轻量级'文档对象。