Zap*_*ica 3 linq entity-framework
我有以下linq查询:
vm.logs = (from l in db.ActivityLogs
orderby l.Time
select l).Take(2);
Run Code Online (Sandbox Code Playgroud)
如果db表为空,这将返回null吗?
如果不是,我如何检测查询是否确实返回任何信息?
它将返回IEnumerable<ActivityLog>没有元素的东西.
要检查是否有任何元素,请使用以下Any()方法:
if(!logs.Any())
{
Console.WriteLine("No elements found.");
}
Run Code Online (Sandbox Code Playgroud)
另请注意,在编写它时,vm.logs将进行延迟评估,也就是说,在使用之前不会从数据库中获取它.如果您先执行a .Any()然后再访问查询的内容,则会在数据库中执行两个查询.为避免这种情况,通过向ToList()查询添加a 来实现(强制执行查询):
vm.logs = (from l in db.ActivityLogs
orderby l.Time
select l).Take(2).ToList();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2476 次 |
| 最近记录: |