首页 > 数据库 >linq to mysql 查询_LinQ to SQL 查询(转)

linq to mysql 查询_LinQ to SQL 查询(转)

时间:2024-11-08 09:22:43浏览次数:1  
标签:映射 数据库 LINQ 查询 LinQ SQL CategoryID

LINQ to SQL 是将对象关系映射到.NET框架中的一种实现。它可以将关系数据库映射为.NET Framework中的一些类。 然后,开发人员就可以通过使用 LINQ to SQL对数据库中的数据进行查询、修改、插入、删除等操作。

LINQ to SQL类映射到SQL Server数据库中的表,这些类被称做“实体类”,实体类中的属性或字段映射到SQL server 数据库中表的列,实体类之间的关联映射到 SQL Server数据库中的外键关系,LINQ to SQL类中的方法映射为SQL 数据库中 的存储过程或函数。下表为LINQ to SQL对象模型和 SQL Server数据库中的对象的映射关系。

 

先添加LINQ to SQL类 xxxxDB.dbml 记住你的名称 在App_Code中打开xxxxDB.dbml 把需要操作的表拖进去即可

创建DBML文件,其中包含了*.dbml.layout文件和 *.designer.cs文件。 其中*.dbml.layout保存了 Dbml文件的布局。 *designer.cs文件是Visual Studio 2008集成开发环境调用代码生成工具SqlMetail创 建的dbml文件的代码。

DataContext称为数据上下文,它为LINQ to SQL 提供操作数据库的入口,如果使用LINQ to SQL 操作数据库,则首先需要为数据库创建一个继承于DataContext类的自定义的数据上下文类,并在该类中定义表,以及操作数据的方法等。

DataContext类充当SQL Server数据库与映射到该数据库的LINQ to SQL实体类之间的管道,它包含用于连接数据库以及操作数据库数据的连接字符串信息和方法。DataContext类能够通过数据库连接或连接字符串来映射数据库中的所有实体的源,并跟踪和标识用户对数据库的更改。用户可以调用其SubmitChanges()方法将所有更改提交到数据库。

简单查询

NorthwindDBDataContext dc = newNorthwindDBDataContext(); //添加LINQ to SQL类时起的名字是什么这就是什么var result = from a indc.Productswhere a.UnitPrice.GetValueOrDefault()<10

selecta; //LINQ查询语句 找到价格小于10的数据

GridView1.DataSource=result;

GridView1.DataBind();

当只要Where条件查询的时候 简写

dc.Products.where(x=>x.ID==1); 查询产品编号等于1的产品

联合查询

LinqDBDataContext db = newLinqDBDataContext(LinqSystem.LinqDBConnectionString);var result = from user indb.UserInfo

join urindb.UserRole on user.ID equals ur.UserID

join roleindb.Role on ur.RoleID equals role.IDwhere user.ID < 200

select new{

ID= user.ID, //显示ID,用户名,电子邮箱和角色

UserName =user.Username,

Email=user.Email,

RoleName=role.RoleName

};

dl_List.DataSource=result;

dl_List.DataBind();

**分组查询和聚合查询

from p in dc.Productsgroup p(分组对象) by p.CategoryID(分组依据) into g //g里面就是p的集合 g.key=p.CategoryID

select new{ } //显示什么这里就写什么

NorthwindDBDataContext dc = newNorthwindDBDataContext();//根据产品ID来得到最贵的产品价格和最低的产品价格

var result = from p indc.Products

group p by p.CategoryID into gselect new //映射到新的匿名对象 需要显示什么里面就去生成什么

{

CateID=g.Key, //by和面接什么 g.key就是什么

Max=g.Max((x)=>x.UnitPrice), //聚合函数 最大值

Min=g.Min((x)=>x.UnitPrice) //聚合函数 最小值

};//获取每个分类中产品的总个数,并显示分类名,总数,总价

var result1 = from p indc.Products

join cindc.Categories on p.CategoryID equals c.CategoryID

groupnew { p = p, c = c } by c.CategoryName into g //new { p = p, c = c } 把需要的对象都添加到匿名对象中

select new{

CateName=g.Key,

Count=g.Count(), //总数

Sum=g.Sum((x)=>x.p.UnitPrice) //求总价

};//获取每个分类中最贵的产品价格和产品名称

var result2 = from p indc.Products

join cindc.Categories on p.CategoryID equals c.CategoryID

groupnew { p = p, c =c } by c.CategoryName into gselect new{

Max=g.Max((x)=>x.p.UnitPrice),

CateName=g.Key,

ProductName=(from u indc.Productswhere u.UnitPrice==g.Max((x)=>x.p.UnitPrice) //条件用来过滤产品名,只需要最贵那个

select u.ProductName //投影一个产品名 根据需要来映射 这里需要产品名称就只映射产品名称

).First() //返回序列中的第一个元素

};

GridView1.DataSource=result2;

GridView1.DataBind();

原文链接:https://blog.csdn.net/weixin_39975261/article/details/113719509

标签:映射,数据库,LINQ,查询,LinQ,SQL,CategoryID
From: https://www.cnblogs.com/xihong2014/p/18534435

相关文章

  • FastAPI 查询参数与字符串校验详解:类型、校验规则与元数据设置
    FastAPI查询参数与字符串校验详解:类型、校验规则与元数据设置本文详细介绍了FastAPI中查询参数的设置与校验方法,涵盖了可选参数、默认值、必要参数和参数列表的处理方式。通过使用Query类,开发者可以为查询参数添加额外的校验规则,如最小长度、最大长度、正则表达式匹配......
  • MySQL索引详解
    MySQL索引详解索引介绍索引是一种用于快速查询和检索数据的数据结构,其本质可以看成是一种排序好的数据结构。索引的作用就相当于书的目录。打个比方:我们在查字典的时候,如果没有目录,那我们就只能一页一页的去找我们需要查的那个字,速度很慢。如果有目录了,我们只需要先去目录里......
  • 商品链接查询淘宝商品信息接口,淘宝天猫宝贝信息采集、淘宝商品历史最低价格数据接口、
    商品链接查询淘宝商品信息接口,淘宝天猫宝贝信息采集、淘宝商品历史最低价格数据接口、优惠信息数据、单日领券销量最高销量数据接口,淘宝联盟ck延期方案|接口+html前端UI界面PHP完整代码:<?php//定义API接口地址和参数$apiUrl="https://api.taolale.com/api/Tb_union......
  • 查询三网话费余额接口,移动话费余额接口、电信话费余额接口、联通话费余额的接口+html
    PHP是直接请求的接口,HTML代码也是直接请求的接口。如果HTML想上线运行,还是需要做下安全的。下边是PHP代码<?php//定义API接口地址和参数$apiUrl="https://api.taolale.com/api/Inquiry_Phone_Charges/get";//API文档地址:https://api.taolale.com/doc/13$api......
  • MySql基本常用语句
    查询语句select*(要查找的内容)fromtable(表名)逻辑运算符--and与--or或--not取反--in包含select*(要查找的内容)fromtable(表名)where*and*select*(要查找的内容)fromtable(表名)where*or*select*(要查找的内容)fromtable(表名)where*in(......
  • sql注入学习记录
    Sql注入思路1、搜索目标通过谷歌语法(如公司inurl:.asp?id=)查找目标网站通过fofaviewer进行查询目标 2、查找注入点存在位置,参数与数据库交互的地方,可能出现在get参数,post参数,user-agent,cookie等地方 3、测试是否存在注入点通过在参数后添加符号’,”,),)),查看页面是否......
  • php毕业设计流浪动物领养系统宠物领养网站PHP+MySQL+HTML计算机毕业设计PHP源码获取ph
    一、功能介绍基于php+mysql+html前台:网站首页宠物推荐最新宠物新闻咨询宠物分类宠物资讯评论登录/注册加入购物车、领养、个人中心后台:各种增删改查系统设置分类管理宠物管理领养管理评价管理新闻资讯用户管理二、效果展示三、代码展示CREATE......
  • [题目总结 #1] 静态序列区间查询问题(未完)
    [题目总结#1]静态序列区间查询问题前言不久前遇到一批这种题,我发现自己思路很单一,只想着莫队、分块、线段树,但是其实可能有其他巧妙的做法,而且就算是用分块、线段树维护的东西也有我没想到的。总体来说,在这种题上,自己的思维太固化、自己太依赖思维惯性,又不熟悉各种套路。于是......
  • 数据结构_链表_双向循环链表 & 栈 的初始化、插入、删除、修改、查询打印(基于C语言实
    一、双向循环链表的原理与应用双向循环链表与双向链表的区别:指的是双向循环链表的首结点中的prev指针成员指向链表的尾结点,并且双向循环链表的尾结点里的next指针成员指向链表的首结点,所以双向循环链表也属于环形结构。由于带头结点更加方便用户进行数据访问,所以本次创建一条带......
  • 数据库SQL Server语言 练习题合集
    文章目录一、“小学生”题库二、“硕士”题库三、“博士”题库四、“博士后”题库五、“博导”题库六、“校长”题库七、“院士”题库总结1.**多表联接查询**:2.**嵌套查询(子查询)**:3.**去重与计数**:4.**条件筛选与分组**:5.**比较与计算**:6.**实际应用**:总结:一......