Linq中的in和not in的使用方法
T-SQL语句:
select * from PayingRecords where ClientID='17787665-1d98-49e6-b254-a6a6553c4b42'
and ID not in
(select PayingRecordID from InvoicingRecordDetails where InvoicingRecordID in
(
select ID from InvoicingRecords where
ClientID='17787665-1d98-49e6-b254-a6a6553c4b42'
)
)
Linq语句:
var query = from p in db.PayingRecords
where !(from i in db.InvoicingRecordDetails
where (from ii in db.InvoicingRecords
where ii.ClientID.Equals(paraRequest.ClientID)
select ii.ID).Contains(i.InvoicingRecordID)
select i.PayingRecordID
).Contains(p.ID)
//join td1 in db.DataAuthorities on p.DataAuthorityID equals td1.ID into p_td1
//from pp in p_td1.DefaultIfEmpty()
//join c in db.Clients on p.ClientID equals c.ID into c_join
//from tmp in c_join.DefaultIfEmpty()
where p.ClientID.Equals(paraRequest.ClientID)
select new PayingRecordResponse
{
ID = p.ID,
// DataAuthorityValue = pp.Value,
ClusterID = p.ClusterID,
ArrivingAmount = p.ArrivingAmount,
ClientID = p.ClientID,
// ClientName = tmp.Name,
ArrivingTime = p.ArrivingTime,
Description = p.Description,
UpdateTime = p.UpdateTime,
UpdateUser = p.UpdateUser,
CreateTime = p.CreateTime,
CreateUser = p.CreateUser
};
Linq生成的语句:
SELECT
[Extent1].[ClusterID] AS [ClusterID],
[Extent1].[ID] AS [ID],
[Extent1].[ArrivingAmount] AS [ArrivingAmount],
[Extent1].[ClientID] AS [ClientID],
[Extent1].[ArrivingTime] AS [ArrivingTime],
[Extent1].[Description] AS [Description],
[Extent1].[UpdateTime] AS [UpdateTime],
[Extent1].[UpdateUser] AS [UpdateUser],
[Extent1].[CreateTime] AS [CreateTime],
[Extent1].[CreateUser] AS [CreateUser]
FROM [dbo].[PayingRecords] AS [Extent1]
WHERE ( NOT EXISTS (SELECT
1 AS [C1]
FROM [dbo].[InvoicingRecordDetails] AS [Extent2]
WHERE ( EXISTS (
SELECT
1 AS [C1]
FROM [dbo].[InvoicingRecords] AS [Extent3]
WHERE ([Extent3].[ClientID] = '17787665-1d98-49e6-b254-a6a6553c4b42')
AND ([Extent3].[ID] = [Extent2].[InvoicingRecordID])
)) AND ([Extent2].[PayingRecordID] = [Extent1].[ID])
)) AND ([Extent1].[ClientID] = '17787665-1d98-49e6-b254-a6a6553c4b42')
Linq中的in和not in的使用方法的更多相关文章
- 让LINQ中的查询语法使用自定义的查询方法
使用LINQ时有两种查询语法:查询语法和方法语法 查询语法:一种类似 SQL 语法的查询方式 方法语法:通过扩展方法和Lambda表达式来创建查询 例如: List<, , , }; //查询语 ...
- Sliverlight linq中的数组筛选数据库中的数据
首先 什么是linq呢 ? LINQ即Language Integrated Query(语言集成查询),LINQ是集成到C#和Visual Basic.NET这些语言中用于提供查询数据能力的一个新特 ...
- C#8.0: 在 LINQ 中支持异步的 IAsyncEnumerable
C# 8.0中,提供了一种新的IAsyncEnumerable<T>接口,在对集合进行迭代时,支持异步操作.比如在读取文本中的多行字符串时,如果读取每行字符串的时候使用同步方法,那么会导致 ...
- Entity Framework 6 Recipes 2nd Edition(11-9)译 -> 在LINQ中使用规范函数
11-9. 在LINQ中使用规范函数 问题 想在一个LINQ查询中使用规范函数 解决方案 假设我们已经有一个影片租赁(MovieRental )实体,它保存某个影片什么时候租出及还回来,以及滞纳金等, ...
- Entity Framework 6 Recipes 2nd Edition(11-11)译 -> 在LINQ中调用数据库函数
11-11. 在LINQ中调用数据库函数 问题 相要在一个LINQ 查询中调用数据库函数. 解决方案 假设有一个任命(Appointment )实体模型,如Figure 11-11.所示, 我们想要查 ...
- 关于Linq中的Lambda表达式中OrderBy的深入理解
起因:就是一段Linq语句,OrderBy里面的i是什么? IQueryable<Student> slist = (from s in EFDB.Student select s). O ...
- Linq中关键字的作用及用法
Linq中关键字的作用及用法 1.All:确定序列中的所有元素是否都满足条件.如果源序列中的每个元素都通过指定谓词中的测试,或者序列为空,则为 true:否则为 false. Demo: 此示例使用 ...
- Linq 中按照多个值进行分组(GroupBy)
Linq 中按照多个值进行分组(GroupBy) .GroupBy(x => new { x.Age, x.Sex }) group emp by new { emp.Age, emp.Sex ...
- Linq 中的 left join
Linq 中的 left join 表A User: 表B UserType: Linq: from t in UserType join u in User on t.typeId equal u. ...
随机推荐
- Linux and Shell 实用命令
-name '*.jar' -printf '%p:' ### 查看CPU使用率 mpstat -P ALL
- linux vi文本编辑器三种模式切换及常用操作
初学者刚进入vi不要乱点键盘,vi的三种模式和各种命令很容易弄混@@ vi编辑器是Unix系统最初的编辑器.它使用控制台图形模式来模拟文本编辑窗口,允许查看文件中的行.在文件中移动.插入.编辑和替换文 ...
- vscode用yuml画类图
vscode用yuml画类图 最近在找画类图的工具,发现vscode一款插件很好用,还支持markdown.vscode插件中直接搜索yuml安装即可. 文件后缀.yuml. 文件开头第一行这样写// ...
- Bellman-Ford(BF)和Floyd算法
以下只是本人的笔记,想法我自己都怀疑,内容不作为参考, Floyd算法就比较暴力了,算法思想是三重循环,直接枚举所有的顶点,再两次for循环枚举所有点,验证以第一个点为中转点的两个点是否路径更短,具体 ...
- unittest 几个重要概念
unittest是一个python版本的junit,junit是java中的单元测试框架,unittest实现了很多junit中的概念,比如我们非常熟悉的test case, test suite等, ...
- 【c++】explicit 隐式类类型转换
上代码 #include <iostream> #include <sstream> using namespace std; class A { public: A(cons ...
- win10-查看wifi密码
1:查看pc连接的wifi名称:netsh wlan show profile 2:生成xml文件: netsh wlan export profile name= YJ-PC_Network fo ...
- sublime text 3 3143注册码
1.点击help->enter license: —– BEGIN LICENSE —– TwitterInc 200 User License EA7E-890007 1D77F72E 390 ...
- MVC中FileResult 返回类型返回Excel
公司中以前写的导出有问题.原来使用的XML格式字符串拼接然后转化成流输出 action public FileResult ExportJobFair() { try { string name = ...
- CXF - 拦截器获取调用方法
没想到要弄这么一个东西. 起初只是想用interceptor记录一下webservice调用日志,后来却被要求在页面展示. 展示容易,但只是展示webservice的地址无法让用户从中明白什么. 那么 ...