我试图找到一种更优雅的方式将信息从我的数据库中提取到我的 Web 应用程序中。目前我在我的表中提取所有数据并且只使用两列的数据。有人建议我考虑SelectMany()
通过仅选择我需要的列来完成此操作。
我不完全确定如何使用 linq-to-sql db 将 msdn 示例转换为 linq 语句。
我目前的声明是这样的:
return db.document_library_sitefiles
.Where(item => item.SiteID == siteId)
.Select(item => item.document_library)
.GroupBy(item => item.Filename)
.Select(group => group.OrderByDescending(p=>p.Version).First())
.Where(item => !item.Filename.Contains("*")).ToList();
我目前的尝试,我知道这是错误的,看起来像这样:
return db.document_library_sitefiles
.Where(item => item.SiteID == siteId)
.SelectMany(item => item.document_library, (filename, filesize)
=> new { filename, filesize })
.Select(item => new { filename = item.document_library.filename,
filesize = item.document_library.filesize })
.ToList();
我是否距离获得预期结果很近?
基本上我想在我的filename
和filesize
列中获取数据,而不需要提取包括file content
(不是我的设计或想法)在内的其余数据,所以我不会用不必要的信息淹没我的服务器,只是为了显示当前文件的简单数据表这个分贝。