我有这个C#L2S代码:LINQ查询检索整个记录,而不是一个领域
Table<ERPRaw> linqRawFile = db.GetTable<RawFile>();
var linqNameList =
from row in linqRawFile.AsEnumerable()
select row.fileName;
currentFileNameList = linqNameList.ToArray();
它应该只读文件名场,但是当我在SQL Server Profiler中检查,我看到这个查询触发完整的记录加载。这些字段包含文件二进制数据,因此全表加载需要相当长的时间。仅检索fileName字段只需要几毫秒。
什么是正确的方式来检索作为字符串数组中的RawFile的只fileName字段?我假设linq框架现在全部加载每个RawFile记录,因为它没有看到我将只从列表中检索到fileName属性。
也许我必须构建查询而不参考linqRawFile呢?那么这是否会忽视linq在项目中引入的原因,以便将数据库层抽象出来?
可能是由于'.AsEnumerable()'' – Ric
VAR linqNameList =(从行linqRawFile选择行。文件名).ToList();' – markpsmith