【发布时间】:2015-11-25 14:08:24
【问题描述】:
想象以下类:
class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
class Underage
{
public int Age { get; set; }
}
我会这样做:
var underAge = db.Underage.Select(u => u.Age) .ToList()/AsEnumerable()/AsQueryable()
var result = db.Persons.Where(p => underAge.Contains(p.Age)).ToList();
什么是最好的选择?如果我调用ToList(),这些项目将被检索一次,但如果我选择AsEnumerable 或AsQueryable,它们将在每次从Where() 的数据库中选择一个人时执行(如果它是这样工作的,我不不太了解数据库在后台做什么)?
Underage 包含数千条记录与少量记录是否有更大的区别?
【问题讨论】:
标签: c# linq linq-to-sql linq-to-entities