EF下lambda与linq查询&&扩展方法

1. linq查询数据

WebTestDBEntities db = new WebTestDBEntities();

  

1.1 linq查询所有列数据

     var userInfoList = from u in db.UserInfo
                               where u.ID == 10
                               select u;

1.2 linq查询部分列数据

   var userInfoList = from u in db.UserInfo
                               where u.ID >= 1
                               select new { Name = u.UserName, Pwd = u.UserPass };

            foreach (var userInfo in userInfoList)
            {
                Response.Write(userInfo.Name + ":" + userInfo.Pwd + "<br/>");
            }

2. lambda查询数据

2.1 lambda查询所有列数据

 var userInfoList = db.UserInfo.Where<UserInfo>(u => u.ID > 0);
            foreach (var userInfo in userInfoList)
            {
                Response.Write(userInfo.UserName + ":" + userInfo.UserPass + "<br/>");
            }

2.2 lambda查询部分列数据

    var userInfoList = db.UserInfo.Where<UserInfo>(u => u.ID > 0).Select(a => new { Name = a.UserName, Pwd = a.UserPass });
            foreach (var userInfo in userInfoList)
            {
                Response.Write(userInfo.Name + ":" + userInfo.Pwd + "<br/>");
            }

3. 排序

var userInfoList = db.UserInfo.Where<UserInfo>(c => true).OrderBy<UserInfo, int>(u => u.ID).Select(u => new { Name = u.UserName,Email=u.Email });//升序排序

            var userInfoList = db.UserInfo.Where<UserInfo>(c => true).OrderByDescending<UserInfo, int>(u => u.ID).Select(u => new { Name = u.UserName, Email = u.Email });//降序排序

            var userInfoList = (from u in db.UserInfo
                                select u).OrderByDescending<UserInfo, int>(c => c.ID).Select(u => new { Name = u.UserName, Email = u.Email });

4. 分页查询示例:

   int pageIndex = 2;
            int pageSize = 2;
            var userInfoList = db.UserInfo.Where<UserInfo>(c => true).OrderBy<UserInfo, int>(u => u.ID).Skip<UserInfo>((pageIndex - 1) * pageSize).Take<UserInfo>(pageSize);
            foreach (var userInfo in userInfoList)
            {
                Response.Write(userInfo.UserName + "<br/>");
            }

5、扩展方法

语法要求:

  • 扩展方法所在的类必须是static
  • 扩展方法必须是一个静态方法
  • 扩展方法的第一个参数,必须用this关键字修饰,而且类型是所扩展的类型
  •   public static string ShowMsg(this string ext, string msg)
            {
                return string.Format("<span style=‘color:red‘>{0}</span>", msg);
            }
 string tempStr = string.Empty;
            string resultStr = tempStr.ShowMsg("扩展方法示例");
            Response.Write(resultStr);

原文地址:https://www.cnblogs.com/ZaraNet/p/9634093.html

时间: 2024-10-15 06:08:08

EF下lambda与linq查询&&扩展方法的相关文章

NHibernate Linq查询 扩展增强 (第九篇)

NHibernate Linq查询 扩展增强 (第九篇) 在上一篇的Linq to NHibernate的介绍当中,全部是namespace NHibernate命名空间中的IQueryOver<TRoot, TSubType>接口提供的.IQueryOver<TRoot, TSubType>这个借口实际上会被翻译成条件查询(Criteria Queries). 实际上Linq to NHibernate更加强大.我们先引入命名空间NHibernate.Linq,这里面有Linq

LINQ常用扩展方法

下面的方法都是IEnumerable<T>的扩展方法: Average计算平均值: Min最小元素:Max最大元素:Sum元素总和: Count元素数量: Concat连接两个序列://Unoin all Contains序列是否包含指定元素: Distinct取得序列中的非重复元素: Except获得两个序列的差集: Intersect获得两个序列的交集: First取得序列第一个元素: Single取得序列的唯一一个元素,如果元素个数不是1个,则报错:!!!严谨的程序. FirstOrDe

LinQ 定义扩展方法3.1

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Reflection; using System.Diagnostics; namespace ExtensionMethodDump { class Program { static void Main(string[] args) { var song = new { Artist = "Juss

Linq之扩展方法

目录 写在前面 系列文章 扩展方法 总结 写在前面 上篇文章介绍了隐式类型,自动属性,初始化器,匿名类的相关概念,及通过反编译的方式查看了编译器帮我们做了那些事.本篇文章将介绍扩展方法的知识点,及如何定义,如何使用的相关内容. 系列文章 Linq之Lambda表达式初步认识 Linq之Lambda进阶 Linq之隐式类型.自动属性.初始化器.匿名类 扩展方法 扩展方法使你能够向现有类型“添加”方法,而无需创建新的派生类型.重新编译或以其他方式修改原始类型. 扩展方法是一种特殊的静态方法,但可以像

Linq 查询 与方法调用

通常,使用linq查询时需要一个实现IQueryable<T> 的查询对象 public class DataA<T> : IQueryable<T> {....} 之后通过 var q = from c in new DataA<int>() where c > 0 select new { a = c.ToString() }; 进行查询,使用IQueryProvider  收集用户输入的表达式进行处理. 但是查询本身实际上只关注查询对象上有无可用

LINQ与扩展方法

What LinQ是什么? 英文全称Language Integrated Query,中文翻译为语言集成查询.它是一组用于语言的扩展,它通过编写代码以查询数据库相同的方式操作内存数据. LINQ的查询操作是比较有特色也比较常用的,但它也有相关的增删改的操作. Why & How 遍历对象.sql语句用的好好的,为什么又引进LINQ? 或许是初学者,好不容易可以掌握sql语句进行增删改查的操作,或许是被固有的思维绑住,使得我们无法跳出圈子,去审视它的优缺点.sql语句肯定有它的缺点,我们先来看个

点标记(lambda表达式+linq查询标记符)与linq语句(查询表达式)

什么是Linq表达式?什么是Lambda表达式? 参照:https://www.cnblogs.com/zhaopei/p/5746414.html 原文地址:https://www.cnblogs.com/vickylinj/p/10923560.html

Windows下配置PHP支持LDAP扩展方法(wampserver)

在网上搜了好多文章都不行呢,大都是没有开启扩展的问题,可是我的是开启的. 终于看到一篇文章,因为我用的是wampserver.下面是文章原话: 然后你发现上面的提示依旧,因为这是网上大多能查到的资料的记载,然后找了dll的依赖列表发现,其实加载ldap扩展还依赖一个dll文件,那就是 libsasl.dll,如果你使用的是wampserver的花,系统加载的是apache目录的bin(php.ini也在这个目录里面的),那么需要从php目录里把这个文件复制到apache/bin里面或者syste

[转][C#]Linq 的扩展方法

public static class LinqEx { public static IEnumerable<TResult> LeftExcludingJoin<TSource, TInner, TKey, TResult>(this IEnumerable<TSource> source, IEnumerable<TInner> inner, Func<TSource, TKey> pk, Func<TInner, TKey> f