比如:这条sql:
select * from table1 as t1
where not Exists(select * from table2 where t1.id=t2.id)
像这条语句用linq如何表示?
你要说完全一样,那是不太可能的。
第一,你的语句本身就有优化空间。
你的和如下的sql 等效:
select * from table1 as t1
where not Exists(select null from table2 where t1.id=t2.id)
如上可减少内存空间交换输出。
------------------------------------------------------------------
linq:如下是检索没有明细的订单,跟你的要求一样. 你改成t1 t2 就行了
from x in Orders
where !Order_Details.Any(t => t.Detail_Order_ID != x.Order_NO)
select x
如上转化成的sql是:
SELECT [t0].[order_ID] AS [Order_ID], [t0].[order_NO] AS [Order_NO]
FROM [Order] AS [t0]
WHERE NOT (EXISTS(
SELECT NULL AS [EMPTY]
FROM [Order_Detail] AS [t1]
WHERE [t1].[detail_Order_ID] <> [t0].[order_NO]
))
----------
如上的写法应该够水准。回头给我多加红包哦!追问
第一,你的语句本身就有优化空间。
你的和如下的sql 等效:
select * from table1 as t1
where not Exists(select null from table2 where t1.id=t2.id)
如上可减少内存空间交换输出。
------------------------------------------------------------------
linq:如下是检索没有明细的订单,跟你的要求一样. 你改成t1 t2 就行了
from x in Orders
where !Order_Details.Any(t => t.Detail_Order_ID != x.Order_NO)
select x
如上转化成的sql是:
SELECT [t0].[order_ID] AS [Order_ID], [t0].[order_NO] AS [Order_NO]
FROM [Order] AS [t0]
WHERE NOT (EXISTS(
SELECT NULL AS [EMPTY]
FROM [Order_Detail] AS [t1]
WHERE [t1].[detail_Order_ID] <> [t0].[order_NO]
))
----------
如上的写法应该够水准。回头给我多加红包哦!追问
高人,我可不可以理解成这样,
from x in t1
where !t2.Any(t => t.id != x.id)
select x
另:
1)!t2.Any()是什么意思?
2)t => 是什么意思?
from x in t1
where !t2.Any(t => t.id != x.id)
select x
你这个要改成==
from x in t1
where !t2.Any(t => t.id == x.id)
select x
以上代表
---
SQL 里有some any all 等 这个很基础的理论。
以上代表!t2.Any() t2 中的任意记录都不满足。
t => 这不是 lambda表达式么!linq的基础。linq本身也是方法树
怎么回事?问linq 却不认识linq的基础方法
温馨提示:答案为网友推荐,仅供参考
第1个回答 2011-12-02
用Contains()方法;
首先获取t2.id这个对象 假如这个id=2
假如表是User
var item=from u in ctx.user where u.id=2;
再判断 bool isexists= ctx.user.Contains(item);追问
首先获取t2.id这个对象 假如这个id=2
假如表是User
var item=from u in ctx.user where u.id=2;
再判断 bool isexists= ctx.user.Contains(item);追问
可不可以就一条语句搞定呢,期待你高人
追答你就是查询一条数据是否在数据库中存在对不对?
那就这样啊
var item=from u in ctx.user where u.uid=你在页面上获取的id啊
如果不存在的这条数据的话,item会为null的
第2个回答 2011-12-03
不会,纯支持,加贴track。