C#笔记——LinQ查询

C#笔记——LinQ查询

一,什么是LinQ 1,LinQ包括什么 二,LinQ查询表达式 三,实例

一,什么是LinQ

LINQ是Language Integrate Query的缩写
是一种用来进行数据访问的编程模型,使得.NET语言可以直接支持数据查询
目标是降低访问数据的复杂度,可以用统一的方法访问不同类型的数据,可以将数据作为对象使用

1,LinQ包括什么

–LINQ to Objects 用于对象的查询
–LINQ to XML 对XML数据的查询
–LINQ to ADO.NET 对数据库的查询
–LINQ to DataSets 数据集
–LINQ to Entities ORM对象
–LINQ to SQL 简易ORM框架

二,LinQ查询表达式

var a = from 表名 p in 数据源 where 条件 select new { p.name,p.remark };

三,实例

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            RbacDBEntities db = new RbacDBEntities();
            //查询用户的角色及名称含有主任的用户
            //一,查询语法
            var user = from UserInfo p in db.UserInfos
                       where p.Name.Contains("主任") && p.RoleID==1
                       select new { n=p.Name,r=p.Role.Name};
            //二,方法语法
            var users = db.UserInfos
                .Where(p => p.Name.Contains("主任"))
                .Select(p => p)
                .ToList();
            Console.WriteLine("名称\t\t\t角色");
            foreach (var item in user)
            {
                Console.WriteLine(item.n + "\t" + item.r);
            }

            //显示各角色的用户 显示角色ID 和用户数量
            var userss = from UserInfo p in db.UserInfos
                         group p by p.RoleID into g
                         select new {role=g.Key,r=g.Count()};   //g.key根据你查询的主键
            Console.WriteLine("角色ID\t数量");
            foreach (var item in userss)
            {
                Console.WriteLine(item.role + "\t" + item.r);
            }

            //求用户数
            var unum = db.UserInfos.Count();
            Console.WriteLine("用户数:"+ unum);
            //roleID最大值
            var max = db.UserInfos.Max(p => p.RoleID);
            Console.WriteLine("roleID最大值:" + max);
            //roleID最小值
            var min = db.UserInfos.Min(p => p.RoleID);
            Console.WriteLine("roleID最小值:" + min);
            //roleID总和
            var sum = db.UserInfos.Sum(p=>p.RoleID);
            Console.WriteLine("roleID总和:" + sum);
            //roleID平均值
            var avg = db.UserInfos.Average(p => p.RoleID);
            Console.WriteLine("roleID平均值:" + avg);
            
            Console.Read();
        }
    }
}
栏目