查询表达式(LINQ)

linq是什么呢?

LINQ,语言集成查询(Language
Integrated Query),他提供N多查询方法,基本的是select(),where(),orderby()和groupby()这几种,那么他们有什么区别吗?下面再说.

所有 LINQ 查询操作基本都由以下三个不同的操作组成:

1、获取数据源。

2、创建查询。

3、执行查询。

linq表达式查询的写法:首先获取所需要查询的数据源

               (from 自定义的表名 in Model对象.查询的表 



              【where 自定义的表名.字段1 关系运算符 值  【&& 自定义的表名.字段2 关系运算符 值】】

              【orderby 自定义的表名.字段】



              【select 自定义的表名】

        

                ).Single();//查询单条数据,当没有数据或者有多条数据时会触发异常

                 .ToList();//查询多条数据并转为List(列表)

                 .Count();//查询(统计)有多少条数据

单表查询的写法

PW_User dbUser = (from tbUser in myModel.PW_User

              where tbUser.UserNuber == strUserNuber &&tbUser.ToVoidNo == true

              select tbUser).Single(); 

多表查询的写法(1)

PW_User dbUser = (from tbUser in myModel.PW_User

             where tbUser.UserNuber == strUserNuber && tbUser.ToVoidNo== true

               select new
               PW_User {

                 UserID=tbUser.UserID,

                UserNuber=tbUser.UserNuber,

                 Password=tbUser.Password

               }).Single();

把PW_User里面的属性值一个个赋值给dbUser

【select new {自定义的表名.字段1,

自定义的表名.字段2,

自定义的表名.字段3,
… }】

多表查询的写法(2)

var dbUser = (from tbUser in myModel.PW_User

where tbUser.UserNuber == strUserNuber && tbUser.ToVoidNo == true

          select  new {

                  tbUser.UserID,

                  tbUser.UserNuber,

                  tbUser.Password

             }).Single();

【select new 类名{ 类的属性1=自定义的表名.字段1
类的属性2=自定义的表名.字段2,
}】

注意:

1、创建一个LINQ表达式必须要以from子句开头。

2、where子句的作用就是筛选元素,除了开始和结束位置,where子句几乎可以出现在LINQ表达式的任意位置。一个LINQ表达式中可以有where子句,也可以没有

3、LINQ表达式的结果是使用select子句获得的。select子句可以对数据进行转换,这个过程称为“投影”。select子句产生的类容,取决于前面的所有子句及其自身表达式执行后的结果。

4、如果一个数据源中元素的某个属性可以跟另一个数据源中元素的属性进行相等比较,那么这两个数据源可以用join子句进行关联

5、orderby用于对多表查询出来的数据进行排序

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值