如何根据条件从linq查询中获取100条记录

2024-02-11

我有一个查询,它将给出结果集。基于一个条件我想取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(使用前将#替换为@)

如何根据条件从linq查询中获取100条记录 的相关文章

随机推荐