通过linq从表中选择两列

2 c# linq

我使用下面的查询来获取Entity Framework Linq中的所有列(20个以上).由于内存不足异常,我只想得到其中两个.一个是"FileName",另一个是"FilePath".如何修改我的代码?

var query = DBContext.Table1
    .Where(c => c.FacilityID == facilityID && c.FilePath != null && c.TimeStationOffHook < oldDate)
    .OrderBy(c => c.FilePath)
    .Skip(1000)
    .Take(1000)
    .ToList();
foreach(var t in query)
{
    Console.WriteLine(t.FilePath +"\\"+t.FileName);
}
Run Code Online (Sandbox Code Playgroud)

Dan*_*ley 11

var query = DBContext.Table1.Where(c => c.FacilityID == facilityID && c.FilePath != null && c.TimeStationOffHook < oldDate)
                            .OrderBy(c => c.FilePath)
                            .Skip(1000)
                            .Take(1000)
                            .Select(c => new { c.FilePath, c.FileName })
                            .ToList();
foreach(var t in query)
{
    Console.WriteLine(t.FilePath +"\\"+t.FileName);
}
Run Code Online (Sandbox Code Playgroud)

你需要使用Select.