关于Linq中的IN和Like用法

前段时间在写LINQ语句时,用到了SQL语句的IN组成。主要是运用了SQLMEOTHD或Container比较这样的属性。

例:

      var _chargeID = GetChargeSubJectTreeID(_charegsubjectTreeID); //得到一个集合,我这是放科目IQueryable<int> ,获致其ID

  var query = (from p in db.M_YSKNew                                  join c in db.Basic_ChargeSubject on p.ChargeSubject_TreeID equals c.ChargeSubject_TreeId                                  join t in db.Basic_AreaManager on p.StallID equals t.AreaManager_TreeID                                  //where p.StallID == intId && _chargeID.Contains<Int32>(p.ChargeSubject_TreeID) && p.YSJE == 0 && p.YSJE != p.SJYS                                  where p.StallID == intId && _chargeID.Contains<Int32>(p.ChargeSubject_TreeID) && p.YSJE == 0 && !p.SFRQ.HasValue && p.JHYS<0                                Select p;  //主要看红的部分,其它的不是主要的

上面这是一种可以用来处理IN的方法 SQL语句 Select * from Table Where Id In ( ) 这样的格式

如果是LIKE,就用SqlMethods.Like() 这样的格式,则要引用类Using System.Data.Linq.SqlClient;

看看帮助就全能解决了。LINQ在读取的时候不能不说它非常强大。但是不能局部判断组合语句。

        String Sql="Select * from Table "

   正常用判断可以这样:          If (条件)                Sql += "Where Name='"+ss+"'";         Else               Sql +=" where Id="+Id; 但用LINQ语句写时就得重写了        If(条件)            var p=from c in db.aa                       where c.Name==ss                      select p;       Else              var p=from c in db.aa                        where c.ID==ID                        select p;     就是不能用正常的SQL语句拼写判断了,如果是这么少的还好办,如果是多条件的话,写起来也是一个麻烦事 不知道有什么好办法没有。

 

    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值
>