我有一个查询,它将给出结果集。基于一个条件我想取100条记录。这意味着。我有一个变量 x,如果 x 的值为 100 那么我必须执行 .take(100) 否则我需要获取完整的记录。
var abc=(from st in Context.STopics
where st.IsActive==true && st.StudentID == 123
select new result()
{
name = st.name }).ToList().Take(100);
由于 LINQ 返回一个延迟执行的 IQueryable,因此您可以创建查询,然后将其限制为前 100 条记录(如果条件为真),然后获取结果。这样,如果您的条件为假,您将获得所有结果。
var abc = (from st in Context.STopics
where st.IsActive && st.StudentID == 123
select new result
{
name = st.name
});
if (x == 100)
abc = abc.Take(100);
abc = abc.ToList();
请注意,执行以下操作很重要Take
之前ToList
,否则,它将检索所有记录,然后仅保留前 100 条记录 - 仅获取所需的记录会更有效,特别是当它是对可能包含数十万行的数据库表的查询时。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)