zoukankan      html  css  js  c++  java
  • LINQ : 对LINQ TO SQL 查询进行编译

    经常和人讨论到LINQ TO SQL的性能问题,我们都知道,LINQ TO SQL多少会有一些性能损耗,因为它的查询和操作语句都是动态拼接的。但我也觉得,这不可能是性能的瓶颈所在。

    但是,有没有什么办法可以尽量地提高LINQ TO SQL的性能吗?

    这一篇,我介绍一下对LINQ TO SQL查询进行编译的一个方法

    例如我们经常需要按照城市检索,然后输出客户列表,我们可以预先将该语句进行编译,如下面这样定义

    public static Func<Model.NorthwindDataContext, string, IQueryable<Customer>>
        CustomersByCity =
            CompiledQuery.Compile((Model.NorthwindDataContext db, string city) =>
                from c in db.Customers where c.City == city select c);//对某一类查询进行编译,City可以换,但可以重用该查询

     

    然后,在我们真正要用的地方就可以像下面这样调用

    gv.DataSource = CustomersByCity(new Model.NorthwindDataContext(), "Berlin").Take(10);
    gv.DataBind();

    这样就可以尽可能地提高了LINQ TO SQL的性能

    本文由作者:陈希章 于 2009/7/16 22:54:18 发布在:http://www.cnblogs.com/chenxizhang/
    本文版权归作者所有,可以转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
    更多博客文章,以及作者对于博客引用方面的完整声明以及合作方面的政策,请参考以下站点:陈希章的博客中心
  • 相关阅读:
    MySQL表的完整性约束
    MySQL支持的数据类型
    MySQL表操作
    MySQL存储引擎概述
    onblur和onkeyup事件
    Web控件LinkButton
    jQuery防止中文乱码
    jQuery 动态添加、删除css样式
    VS2012生成Web时报未能找到元数据文件xxx.dll
    单击EasyUI的datagrid行时不选中
  • 原文地址:https://www.cnblogs.com/chenxizhang/p/1525194.html
Copyright © 2011-2022 走看看