• Linq 动态查询


    如果是传统的应用程序开发,采取动态拼 Sql字符串的形式就可以解决了,但Linq代码是没办法间歇性判断而拼接.
    首先UI上查询条件的项目往往并不确定,如上图目前有城市订单数目,将来可能有新的项目要增加,结果将导致代码频繁更改,对于这种情况无论是拼Sql时代,还是如今的Linq都不太容易应对,故而当有新的查询项目添进时,就多加一个查询条件。
    另一个问题,当城市输入框为空时,那么对城市条件的限定则不应当加入Linq语句。
    比如
    string city = "";
    Linq语句片段:where c.City.Contains(city);
    当city为空时,上述片段不应该成为在Linq语句的一部分,这该怎么办呢? 总不能在Linq代码中间写 if(city != "")吧?!
    真正的技巧很简单:
    string city = queryItems.City;
    int ordersCount = queryItems.OrdersCount;
    
    var query = from c in dbContext.Customers
                where (String.IsNullOrEmpty(city) ? true : c.City.Contains(city))
                   && (ordersCount == 0 ? true : c.Orders.Count > ordersCount)
                select c;
    string queryString = query.ToString();
    return query.ToList();

    显而易见,在where子句中可以使用三元运算符进行条件判断:

        当条件不符合时返回一个true值,Linq在翻译为Sql语句时将忽略true;

        而条件符合时将返回预期的表达式语句。

     
     
     
     
     
     
     
  • 相关阅读:
    富可视M310刷机包 MIUIV5 红米开发版 闪光 美化 稳定
    Windowsclient SSH 远程连接Windowsserver(PowerShell Server)
    数据结构与算法02--链表基础
    rhadoop linear regression 问题
    奇怪的git代理超时问题
    怎样利用Heartbeat与Floating IP在Ubuntu 14.04上创建高可用性设置
    IVS_原理
    NN入门
    算法体系
    CNN原理
  • 原文地址:https://www.cnblogs.com/luoxiaonet/p/2482763.html
Copyright © 2020-2023  润新知