【发布时间】:2020-07-24 09:10:51
【问题描述】:
我有使用.Take() 方法的EF 查询。我从输入参数中获取多少条记录。但是如果这个参数是NULL,我根本不想调用Take。目前,如果参数是NULL,我将其设置为int.MaxValue。我应该在IQueryable<> 块上划分我的代码并检查此参数还是存在“单行”解决方案?
var itemsPerPage = int.MaxValue;
if (input.ItemsPerPage.HasValue && input.ItemsPerPage.Value > 0)
{
itemsPerPage = input.ItemsPerPage.Value;
}
var result = await query.Take(itemsPerPage).ToListAsync();
【问题讨论】:
-
query.Take(input.ItemsPerPage ?? int.MaxValue)将是 oneliner 解决方案,但我认为它不是有效的。或者你可以试试这样的var result = await (input.ItemsPerPage == null ? query : qurey.Take(itemsPerPage))ToListAsync(); -
var bob = query; if (condition) bob = bob.Take(itemsPerPage);
标签: c# .net entity-framework linq entity-framework-6