zoukankan      html  css  js  c++  java
  • 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,不会去读数据。

  • 相关阅读:
    ASP.NET2.0中用Gridview控件操作数据
    有关petShop的几篇文章
    用多活动结果集优化ADO.NET2.0数据连接
    设计数据层组件并在层间传递数据
    google的语法?
    PHP导出Excel方法
    header ContentType类型
    40条优化php代码的小实例
    strstr 不错的技巧
    PHP 截取字符串专题
  • 原文地址:https://www.cnblogs.com/YCconfig/p/5062987.html
Copyright © 2011-2022 走看看