如何判断一条LINQ语句是否需要优化,以及各种LINQ to XXX有什么关系?

Bonjour-你好 2012-12-12 02:25:10
我用SQL Server Profiler查看自己写的LINQ语句(EF)的时候,发觉跟用字符串拼写的SQL语句相比,那“CPU”那栏大得多,字符串拼写的几乎是0的,LINQ的都有几十甚至几百的,还是用查询的时间相比?

还有其他的LINQ to XXX,他们之间是什么关系,各自适合什么场合下使用?

写LINQ需要优化,根据什么规则(技巧)优化?

数据库新手,望指教
...全文
253 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
icyj 2013-05-03
  • 打赏
  • 举报
回复
take是非延迟???似乎不是哦。 映像中只有First、Count是的,take应该还是延迟计算的查询。
Bonjour-你好 2012-12-12
  • 打赏
  • 举报
回复
引用 3 楼 q107770540 的回复:
Take() 方法已经是非延迟了
啊~~原来take也是啊,我之前看通常都是什么tolist的,那么是不是把take放最后或者放到前台代码上就可以保持延迟了?
q107770540 2012-12-12
  • 打赏
  • 举报
回复
Take() 方法已经是非延迟了
Bonjour-你好 2012-12-12
  • 打赏
  • 举报
回复
引用 1 楼 q107770540 的回复:
你的LINQ语句是怎么用的? 查询语句中尽量使用延迟查询操作符,不然会破坏LINQ的延迟查询特性
因为是在Silverlight上开发,所有我就根据msdn上的http://msdn.microsoft.com/zh-cn/library/ee707376%28v=vs.91%29.aspx创建的,LINQ都写在CustomerDomainService类里面,写法大概是:

public IQueryable<Class1> GetTest()
{
    //Where里面是一个表达式树
    return 表1.AsExpandable().Where().Take().Join(表2, p => p.编号, i => i.编号, (p, i) => new Class1{
                。。。。
                。。。。
                }).OrderBy();
}
然后再在前台代码用datagrid之类的控件绑定这返回的数据,这样应该没有破坏LINQ的延迟查询吧?
q107770540 2012-12-12
  • 打赏
  • 举报
回复
你的LINQ语句是怎么用的? 查询语句中尽量使用延迟查询操作符,不然会破坏LINQ的延迟查询特性

8,497

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 LINQ
社区管理员
  • LINQ
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧