别人的博客 http://blog.163.com/lesheng@126/blog/static/357364652010102111051668/

using System.Data.Linq.SqlClient;//程序集 System.Data.Linq
string haveKey = Request.Form["haveKey"];
if (haveKey != null && haveKey.Length > )
{
haveKey = string.Format("%{0}%", haveKey);
list = from q in list
where SqlMethods.Like(q.Name, haveKey)
select q;
}
string noKey = Request.Form["noKey"];
if (noKey != null && noKey.Length > )
{
noKey = string.Format("%{0}%", noKey);
list = from q in list
where !SqlMethods.Like(q.Name, noKey)
select q;
}
-SQL的IN: Select ProductID, ProductName, CategoryID
From dbo.Products
Where CategoryID in (, ) T-SQL的NOT IN: Select ProductID, ProductName, CategoryID
From dbo.Products
Where CategoryID not in (, ) Or Select ProductID, ProductName, CategoryID
From dbo.Products
Where not CategoryID in (, ) LINQ的IN: var queryResult = from p in db.Products
where (new int?[] {,}).Contains(p.CategoryID)
select p; LINQ的IN解析成SQL: SELECT [t0].[ProductID], [t0].[ProductName], [t0].[SupplierID], [t0].[CategoryID], [t0].[QuantityPerUnit], [t0].[UnitPrice], [t0].[UnitsInStock], [t0].[UnitsOnOrder], [t0].[ReorderLevel], [t0].[Discontinued]
FROM [dbo].[Products]AS [t0]
WHERE [t0].[CategoryID] IN (@p0, @p1) LINQ的NOT IN: var queryResult = from p in db.Products
where ! (new int?[] {,}).Contains(p.CategoryID)
select p; LINQ的NOT IN解析成SQL: SELECT [t0].[ProductID], [t0].[ProductName], [t0].[SupplierID], [t0].[CategoryID], [t0].[QuantityPerUnit], [t0].[UnitPrice], [t0].[UnitsInStock], [t0].[UnitsOnOrder], [t0].[ReorderLevel], [t0].[Discontinued]
FROM [dbo].[Products]AS [t0]
WHERE NOT [t0].[CategoryID] IN (@p0, @p1)

以下是我的实现:

GreenhouseBll ghBll = new IntelBLL.GreenhouseBll();
List<GreenhouseModel> ghList = ghBll.GreenhouseUserSel(user.EnterpriseID, user.DistrictID, user.UserID); string noKey = "S%_S%";
var expGh = from q in ghList
where !SqlMethods.Like(q.GreenhouseName, noKey)
select q; return Content("{\"total\":" + expGh.Count().ToString() + ",\"data\":" + new JavaScriptSerializer().Serialize(expGh.ToList()) + "}");

but,报错了:无法在客户端上使用方法“Boolean Like(System.String, System.String)”;它仅可用于转换为 SQL。┭┮﹏┭┮

看来我应该搜 linq to Entity not like

博客地址 https://www.cnblogs.com/mbailing/archive/2010/10/26/LinqToEntity.html

Linq to entity  indexof ()方法想当于  sql 中的like 语句,

但在  sql 中  like '010%' 是用来过滤以 '010' 开头的数据。

like '%010%' 是用来过滤 包含 010 的数据。

原本以为 linq to entity indexof()  方法能实现  like '010%'的效果,但是在实际中使用才发现,它其实实现的是  like '%010%'  的效果。

我的问题是,linq to entity 如何实现  sql 中 like '010%' 的查询效果,即查找开头为010的数据。

答案:用StartWith ()  方法可以实现  sql 中 like '010%'的效果,它是从开头字母做比对。

indexof() 方法是 比对字符串中包含。

我的用法:like都出来了,not like 还远吗?

var expGh = from q in ghList
where q.GreenhouseName.IndexOf('S')==-
select q; return Content("{\"total\":" + expGh.Count().ToString() + ",\"data\":" + new JavaScriptSerializer().Serialize(expGh.ToList()) + "}");

原来的效果:

过滤后:

原来记个博客也花不了多少时间嘛

Linq in not in\like not like的更多相关文章

  1. Linq表达式、Lambda表达式你更喜欢哪个?

    什么是Linq表达式?什么是Lambda表达式? 如图: 由此可见Linq表达式和Lambda表达式并没有什么可比性. 那与Lambda表达式相关的整条语句称作什么呢?在微软并没有给出官方的命名,在& ...

  2. Linq之旅:Linq入门详解(Linq to Objects)

    示例代码下载:Linq之旅:Linq入门详解(Linq to Objects) 本博文详细介绍 .NET 3.5 中引入的重要功能:Language Integrated Query(LINQ,语言集 ...

  3. [C#] 走进 LINQ 的世界

    走进 LINQ 的世界 序 在此之前曾发表过三篇关于 LINQ 的随笔: 进阶:<LINQ 标准查询操作概述>(强烈推荐) 技巧:<Linq To Objects - 如何操作字符串 ...

  4. [C#] 进阶 - LINQ 标准查询操作概述

    LINQ 标准查询操作概述 序 “标准查询运算符”是组成语言集成查询 (LINQ) 模式的方法.大多数这些方法都在序列上运行,其中的序列是一个对象,其类型实现了IEnumerable<T> ...

  5. LINQ to SQL语句(7)之Exists/In/Any/All/Contains

    适用场景:用于判断集合中元素,进一步缩小范围. Any 说明:用于判断集合中是否有元素满足某一条件:不延迟.(若条件为空,则集合只要不为空就返回True,否则为False).有2种形式,分别为简单形式 ...

  6. .NET深入实战系列—Linq to Sql进阶

    最近在写代码的过程中用到了Linq查询,在查找资料的过程中发现网上的资料千奇百怪,于是自己整理了一些关于Linq中容易让人困惑的地方. 本文全部代码基于:UserInfo与Class两个表,其中Cla ...

  7. LINQ Group By操作

    在上篇文章 .NET应用程序与数据库交互的若干问题 这篇文章中,讨论了一个计算热门商圈的问题,现在在这里扩展一下,假设我们需要从两张表中统计出热门商圈,这两张表内容如下: 上表是所有政区,商圈中的餐饮 ...

  8. Entity Framework 6 Recipes 2nd Edition(11-9)译 -> 在LINQ中使用规范函数

    11-9. 在LINQ中使用规范函数 问题 想在一个LINQ查询中使用规范函数 解决方案 假设我们已经有一个影片租赁(MovieRental )实体,它保存某个影片什么时候租出及还回来,以及滞纳金等, ...

  9. Entity Framework 6 Recipes 2nd Edition(11-11)译 -> 在LINQ中调用数据库函数

    11-11. 在LINQ中调用数据库函数 问题 相要在一个LINQ 查询中调用数据库函数. 解决方案 假设有一个任命(Appointment )实体模型,如Figure 11-11.所示, 我们想要查 ...

  10. Entity Framework 6 Recipes 2nd Edition(13-6)译 -> 自动编译的LINQ查询

    问题 你想为多次用到的查询提高性能,而且你不想添加额外的编码或配置. 解决方案 假设你有如Figure 13-8 所示的模型 Figure 13-8. A model with an Associat ...

随机推荐

  1. CentOS7.查看进程占用端口情况

    1.命令:"netstat -lntp" 2.没有改命令的话,需要安装 net-tools工具:"yum install net-tools" 3. 4. 5.

  2. 使用app.config中的数据对数据库链接信息初始化

    看到别人数据库信息都是在app.config里面设置的,今天来尝试了一下,报了 "System.Configuration.ConfigurationSettings.AppSettings ...

  3. linux 扩展正则表达式 egrep

    使用命令为grep -E 及egrep [root@MongoDB ~]# cat mike.log I am mike! I like linux. I like play football, te ...

  4. [转帖]Oracle dba_objects和all_objects 最大的区别

    Oracle dba_objects和all_objects 最大的区别 原创 Oracle 作者:maohaiqing0304 时间:2015-08-14 15:07:18  9281  0   链 ...

  5. java.io.IOException: Cannot run program "/opt/jdk1.8.0_191/bin/java" (in directory "/var/lib/jenkins/workspace/xinguan"): error=2, No such file or directory

    测试jenkins构建,报错如下 Parsing POMs Established TCP socket on 44463 [xinguan] $ /opt/jdk1.8.0_191/bin/java ...

  6. P1190排队接水

    这是2010年普及组第二题(话说我怎么只做普及组的题?因为太蒻). 这道题可以用搜索或者模拟来做,果断编了几组例子去分析来模拟,利用了贪心的思想得出:每次比较每个水龙头的空闲时间点,谁早就放到谁那里, ...

  7. Centos7Yum安装PHP7.2流程

    Centos7Yum安装PHP7.21.安装源 安装php72w,是需要配置额外的yum源地址的,否则会报错不能找到相关软件包. php高版本的yum源地址,有两部分,其中一部分是epel-relea ...

  8. python3使用hashlib进行加密

    hashlib是个专门提供hash算法的库,里面包括md5, sha1, sha224, sha256, sha384, sha512,使用非常简单.方便. MD5 MD5的全称是Message-Di ...

  9. 自定义ajax函数(仿照jQuery)

    AJAX介绍 AJAX = 异步 JavaScript 和 XML. 全称:Asynchronous Javascript And XML: AJAX 是一种用于创建快速动态网页的技术. 通过在后台与 ...

  10. switch使用--查询水果价格案例

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...