linq to sql any和all的区别
答案:3 悬赏:70 手机版
解决时间 2021-03-11 22:14
- 提问者网友:夢醒日落
- 2021-03-10 23:11
linq to sql any和all的区别
最佳答案
- 五星知识达人网友:掌灯师
- 2021-03-11 00:03
Any
说明:用于判断集合中是否有元素满足某一条件;不延迟。(若条件为空,则集合只要不为空就返回True,否则为False)。
1.简单形式:
仅返回没有订单的客户:
var q =
from c in db.Customers
where !c.Orders.Any()
select c;
生成SQL语句为:
SELECT [t0].[CustomerID], [t0].[CompanyName], [t0].[ContactName],
[t0].[ContactTitle], [t0].[Address], [t0].[City], [t0].[Region],
[t0].[PostalCode], [t0].[Country], [t0].[Phone], [t0].[Fax]
FROM [dbo].[Customers] AS [t0]
WHERe NOT (EXISTS(
SELECt NULL AS [EMPTY] FROM [dbo].[Orders] AS [t1]
WHERe [t1].[CustomerID] = [t0].[CustomerID]
))
All
说明:用于判断集合中所有元素是否都满足某一条件;不延迟
var q =
from c in db.Customers
where c.Orders.All(o => o.ShipCity == c.City)
select c;
语句描述:这个例子返回所有订单都运往其所在城市的客户或未下订单的客户。
说明:用于判断集合中是否有元素满足某一条件;不延迟。(若条件为空,则集合只要不为空就返回True,否则为False)。
1.简单形式:
仅返回没有订单的客户:
var q =
from c in db.Customers
where !c.Orders.Any()
select c;
生成SQL语句为:
SELECT [t0].[CustomerID], [t0].[CompanyName], [t0].[ContactName],
[t0].[ContactTitle], [t0].[Address], [t0].[City], [t0].[Region],
[t0].[PostalCode], [t0].[Country], [t0].[Phone], [t0].[Fax]
FROM [dbo].[Customers] AS [t0]
WHERe NOT (EXISTS(
SELECt NULL AS [EMPTY] FROM [dbo].[Orders] AS [t1]
WHERe [t1].[CustomerID] = [t0].[CustomerID]
))
All
说明:用于判断集合中所有元素是否都满足某一条件;不延迟
var q =
from c in db.Customers
where c.Orders.All(o => o.ShipCity == c.City)
select c;
语句描述:这个例子返回所有订单都运往其所在城市的客户或未下订单的客户。
全部回答
- 1楼网友:低血压的长颈鹿
- 2021-03-11 02:06
Linq是微软在.net3.0推出的一种新的数据访问和处理的方式,来解决过去处理集合对象数据所遇到的种种困难。其中在C#3.0和VB9中分别引入了和SQL相似的Linq语法,使得现在操作各种数据对象变得非常容易而且可读性更好。
Linq To Sql是微软默认提供的LinqProvider的一种,其他的还有LinqToDataSet LinqToXml LinqToEntity等。
平时开发项目可以大量的使用linq,他会让你在处理大量集合数据的时候提高效率。而Linq2Sql算是一个ORM框架,可以用来减轻数据访问的负担,如果你知道Hibernate之类的ORM框架的话,就很容易理解他了
- 2楼网友:你哪知我潦倒为你
- 2021-03-11 01:12
linq to sql 关于any的用法
表结构
rah_user :userid,username,isdelete
rah_usermembership :userid ,pwd
2个表的id是一对一
我想做一个 select a.*,b.* from rah_user a,rah_usermembership where a.userid=b.userid where a.username='aaa'
and a.isdelete=false and b.password ='pwd' 类似于这种功能的
但我
from a in context.rah_user
join b in context.rah_usermembership on a.userid equals b.userid
where context.rah_user.any(aa=>aa.loginname==username && aa.isdeleted==false)
&& context.rah_usermembership.any(bb=>bb.passwd==pwd)
select a;
写不对。我想大家能不能帮我想想应该怎么写。
要求不要用where (m=>m.username=='aaa') 而是用any实现
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯