专栏首页菩提树下的杨过linq to sql的多条件动态查询(上)

linq to sql的多条件动态查询(上)

linq  to sql的多条件动态查询确实是一件头痛的事情,用表达式树或反射方法要写一大堆代码,有时候想想与其这么复杂,还不如回到手动sql拼接的年代,但是技术总是向前发展的,终归还是要在linq上解决这一问题,无意在网上发现一个还算比较简单的办法,分享一下:

void ShowData() 
    {
        using (DBDataContext db = new DBDataContext(Database.ConnectionString))
        {
            Expression<Func<T_Bargin, bool>> expr = n => GetCondition(n);
            var _query = db.T_Bargins.Where<T_Bargin>(expr.Compile()).Select(b => new { b.F_Money, b.F_Name });
            foreach (var item in _query)
            {
                Response.Write(item.F_Name + "&nbsp;" + item.F_Money.ToString() +  "<br/>");
            }
        }     
    }


    //得到合同金额大于6000,或合同名称中包含"江华"字的条件
    private bool GetCondition(T_Bargin _Table)
    {       

        bool _result = false;

        decimal _MinMoney = 6000;

        if (_MinMoney > 0)
        {
            _result |= _Table.F_Money >= _MinMoney;
        }

        string _Name = "江华";

        if (!String.IsNullOrEmpty(_Name))
        {
            _result |= _Table.F_Name.Contains(_Name);
        }
        
        return _result;
    }

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • jQuery调用RESTful WCF示例(GET方法/POST方法)

    不废话了,直奔主题吧 wcf端: 近几年比较流行restful,为了能让ajax调用,同时也为了支持restful风格的uri,在创建一个Ajax-enable...

    菩提树下的杨过
  • XmlWriter/XmlReader示例代码

    在Silverlight项目中,如果您想最大程度的减少xap包的大小,仅使用默认System.Xml命名空间下提供的功能来实现“XML序列化/反序列化”,恐怕X...

    菩提树下的杨过
  • iframe框架取值兼容ie/firefox/chrome的写法

    为啥世上会有这么多不同的浏览器?每次遇到js/css的浏览器兼容性问题,总是要发出这样的感叹,真希望这些个浏览器公司全部倒下,然后只留下一家(显然这是一个不可能...

    菩提树下的杨过
  • R语言模拟:Bias Variance Decomposition

    接上一篇《R语言模拟:Bias-Variance trade-off》,本文通过模拟分析算法的泛化误差、偏差、方差和噪声之间的关系,是《element stat...

    量化小白
  • 杂项及密码基础

    Base58是用于Bitcoin中使用的一种独特的编码方式,主要用于产生Bitcoin的钱包地址。 相比Base64,Base58不使用数字"0",字母大写...

    tinyfisher
  • Django学习-第一讲(下) Django框架介绍与环境搭建

    Django,发音为[`dʒæŋɡəʊ],Django诞生于2003年秋天,2005年发布正式版本,由Simon和Andrian开发。

    小海怪的互联网
  • 动态 | Google推出Tacotron 2:结合WaveNet,深度神经网络TTS媲美专业级别

    AI 科技评论按:今年3月,Google 提出了一种新的端到端的语音合成系统:Tacotron。该系统可以接收字符输入并输出相应的原始频谱图,然后将其提供给 G...

    AI科技评论
  • C++ 制作 json 数据 并 传送给服务端(Server) 的 php

    json数据格式,这里举个基础的例子:       {"name":"LGH"} 在C++里面,我用个函数把特定的数据组合成 json 1 void toJs...

    林冠宏-指尖下的幽灵
  • Spark Shuffle的技术演进

    本文原文 http://www.leonlu.cc/profession/19-spark-shuffle ,作者 LeonLu

    大数据技术架构
  • NopCommerce 4.2的安装与运行

    NopCommerce是国外ASP.Net领域一个高质量的B2C开源电商项目,最新版本4.2基于ASP.NET Core MVC 2.2和EF Core 2....

    Edison Zhou

扫码关注云+社区

领取腾讯云代金券