【发布时间】:2011-06-02 22:13:18
【问题描述】:
这可能最好用一些代码来解释:
public IQueryable<DatabaseRecord> GetQueryableLinkedRecords()
{
if(this.currentlyHeldIds.Count() == 0)
{
return Enumerable.Empty<DatabaseRecord>().AsQueryable();
}
else
{
return from r in this.DBContext.DatabaseRecords
where this.currentlyHeldIds.Contains(r.Id)
select r;
}
}
如果没有 currentHeldId 可供查询,则没有理由再次实际查询数据库。如果 currentHeldIds 没有值,LINQ to SQL 仍将查询数据库。这种方法有什么问题吗?我意识到通常还有一些与返回 IQueryable 相关的其他问题,但除了这些论点之外,尝试像这样规避 db 调用有什么问题吗?
【问题讨论】:
标签: c# .net linq linq-to-sql iqueryable