【发布时间】:2012-02-09 14:12:25
【问题描述】:
我有一个数据访问层,它使用 Linq-To-SQL 作为 ORM 并使用存储库模式。
例如
public class OrderRepository : IRepository<DTO.Order>
{
DTO.SampleDataContext _db = null;
public OrderRepository()
{
_db = DataContextFactory.Create();
}
public OrderRepository(DTO.SampleDataContext db)
{
_db = db;
}
public IQueryable<DTO.Order> SelectAll()
{
var q = from o in _db.Orders
select o;
return q.AsQueryable();
}
我的业务层使用SelectAll() 方法的结果并查询它的结果。
在 SQL Profiler 中,Linq-to-SQL 生成一个嵌套查询,类似这样
select * from f1
(
select * from Orders
) as f1
where f1.RecordDateTime > @p1
这种方法是否存在性能问题?
提前致谢
【问题讨论】:
-
为什么需要调用 AsQueryable()? q 已经是 IQueryable
类型了。
标签: sql-server performance linq-to-sql