求linq子查询写法

kiba518 2012-04-26 02:50:58
我有一个字符串数组 “1,2,3”
我要写一个LINQ
from p in 表
where p.id 等于字符串中任何一个
这个linq怎么写
...全文
456 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
kiba518 2012-05-10
  • 打赏
  • 举报
回复
不行 tolist了 数据量太大 绝对要在 tolist前作 子查询
q107770540 2012-05-10
  • 打赏
  • 举报
回复
非也非也,你是的LINQ2EF 不支持Contains写法
先.ToList().转化成LINQ2Object再说:
.Where()
=====
.ToList().Where()
kiba518 2012-05-10
  • 打赏
  • 举报
回复
你们都是.net4.0吧 我这个是.net 3.5
kiba518 2012-05-10
  • 打赏
  • 举报
回复
我这么写 报错啊 错误提示~~~
LINQ to Entities 不识别方法“Boolean Contains[String](System.Collections.Generic.IEnumerable`1[System.String], System.String)”,因此该方法无法转换为存储表达式。
orochiheart 2012-04-27
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 的回复:]
var aa = "aaa";
var bb = "456aaa789";

var cc =
from a in aa
from b in bb
where a==b
select a;
[/Quote]
哇 好棒!!! 通熟易懂 短小精悍 至少对于我这个linq初学者来讲 是个好东西!!!
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]

LINQ不仅可以查数据库表,还可以查对象,实体,XML等等。。
[/Quote]

基本上应该把针对 IQueryable<T>的与针对通用的IEnumerable<T>的分开来看。数据库驱动通常实现为Linq Provider,那个要沉重得多。很多时候更愿意使用原生数据库查询语言,例如sql等,而不是Linq。只是针对内存中的对象,才会大量使用Linq。
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

引用 6 楼 的回复:

弱弱的问一下 这里的“表”表示什么? dataTable? 还是什么?


表 可以是很多类型 数组 list
linq对查询语句一般用var 隐式类型
[/Quote]

不要说成是表。它只需要是一个是实现了 IEnumerable 接口的对象,不是表。
草青工作室 2012-04-26
  • 打赏
  • 举报
回复
var aa = "aaa";
var bb = "456aaa789";

var cc =
from a in aa
from b in bb
where a==b
select a;
w767687781 2012-04-26
  • 打赏
  • 举报
回复
linq 确实很好用…………
orochiheart 2012-04-26
  • 打赏
  • 举报
回复
谢谢楼上和楼上的楼上指点!linq好东西呀!
mizuho_2006 2012-04-26
  • 打赏
  • 举报
回复
LINQ不仅可以查数据库表,还可以查对象,实体,XML等等。。
哪吒 2012-04-26
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

弱弱的问一下 这里的“表”表示什么? dataTable? 还是什么?
[/Quote]

表 可以是很多类型 数组 list
linq对查询语句一般用var 隐式类型
orochiheart 2012-04-26
  • 打赏
  • 举报
回复
弱弱的问一下 这里的“表”表示什么? dataTable? 还是什么?
flyerwing 2012-04-26
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
from p in 表
where new int[]{1,2,3}.Contains(p.id)
select p;
[/Quote]
是的了
EnForGrass 2012-04-26
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

from p in 表
where new int[]{1,2,3}.Contains(p.id)
select p;
[/Quote]
+1,Contains
ohkuy 2012-04-26
  • 打赏
  • 举报
回复
你为什么非要用from,
简写不行么?

int[] arrays={1,2,3};
var p=表.Where(a=>arrays.Contains(a.Id)).Tolist();

q107770540 2012-04-26
  • 打赏
  • 举报
回复
from p in 表
where new int[]{1,2,3}.Contains(p.id)
select p;

110,499

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧