• MVC+EF五种条件查询获取数据列表方式


    五中方式分为定制查询和智能查询,定制查询是确定有几个条件并且每个条件都生效的,智能查询是不确定条件个数和条件生效个数,具体看代码

     1 IList<BMS_USERS> list = entities.BMS_USERS.ToList<BMS_USERS>();
     2 
     3                 BMS_USERS user = new BMS_USERS();
     4 
     5                 #region MVC+EF多条件查询解决办法1 适用于智能查询(不确定根据什么条件查询)
     6                 ////应用LINQKit.dll插件,适用于智能查询(不确定根据什么条件查询)
     7                 //var builder = PredicateBuilder.True<BMS_USERS>();
     8                 //if (!string.IsNullOrEmpty(user.UNAME))
     9                 //    builder = builder.And(m => m.UNAME == user.UNAME);
    10                 //if (!string.IsNullOrEmpty(user.UPWD))
    11                 //    builder = builder.And(m => m.UPWD == user.UPWD);
    12                 #endregion
    13 
    14                 #region MVC+EF多条件查询解决办法2 适用于定制查询(确定根据什么条件查询)
    15                 ////适用于定制查询(确定根据什么条件查询)
    16                 //IList<BMS_USERS> list2 = entities.BMS_USERS.Where(m => m.UNAME == "123" && m.UPWD == "456").ToList<BMS_USERS>();
    17                 #endregion
    18 
    19                 #region MVC+EF多条件查询解决办法3 适用于定制查询(确定根据什么条件查询)
    20                 ////Linq语句查询,适用于定制查询(确定根据什么条件查询)
    21                 //IList<BMS_USERS> list3 = (from a in list
    22                 //                          where a.UNAME == "123" && a.UPWD == "456"
    23                 //                          orderby a.UID descending
    24                 //                          select a).ToList<BMS_USERS>();
    25                 #endregion
    26 
    27                 #region MVC+EF多条件查询解决办法4 适用于定制查询(确定根据什么条件查询)
    28                 ////Linq 适用于定制查询(确定根据什么条件查询)
    29                 //IList<BMS_USERS> list4 = (from a in list
    30                 //                          where a.UNAME == "123"
    31                 //                          where a.UPWD == "456"
    32                 //                          orderby a.UID descending
    33                 //                          select a).ToList<BMS_USERS>();
    34                 #endregion
    35 
    36                 #region MVC+EF多条件查询解决办法5 适用于智能查询(不确定根据什么条件查询)
    37                 ////适用于智能查询(不确定根据什么条件查询)
    38                 //var query = from a in entities.BMS_USERS select a;
    39                 //if (!string.IsNullOrEmpty(user.UNAME))
    40                 //    query = query.Where(d => d.UNAME == "123");
    41                 //if (!string.IsNullOrEmpty(user.UPWD))
    42                 //    query = query.Where(d => d.UPWD == "456");
    43                 //IList<BMS_USERS> list5 = query.ToList();
    44                 #endregion
    View Code

      第一种智能查询用了一个LINQKit.dll封装库,它提供了一个动态添加条件的PredicateBuilder方法,当然它的功能是非常强大的,不止这一个用途,以后楼主会详解的。

      第二、三、四种定制查询用了lambda或者linq语句,当然,他两个是哥们,这两种方式只适合提前知道几种查询条件的。

      第五种智能查询是拼接的lamdba表达式,简单实用。有人会问了,在赋值var query的时候会不会把数据提前全部取出,然而并不会,linq只有在ToList()的时候才会去度数据,前面的判断语句只会拼接lambda,不会去读数据。

  • 相关阅读:
    sql server 2008数据复制方法
    排错技能:任务管理器中追踪某w3wp.exe是哪个IIS站点的application pool
    SplendidCRM中给来自EditView中的listbox控件设置选中值或数据源
    jQuery String Functions
    [转]jquery getJSON 数据联动(采用序列化和反序列化获取数据) .
    [转]javascript eval函数解析json数据时为什加上圆括号eval("("+data+")")
    深入理解C语言
    Qt回忆录之配置开发环境
    360电话面试
    浅谈C++设计模式之单例模式
  • 原文地址:https://www.cnblogs.com/YCconfig/p/5062987.html
Copyright © 2020-2023  润新知