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的使用方法的更多相关文章

  1. 让LINQ中的查询语法使用自定义的查询方法

    使用LINQ时有两种查询语法:查询语法和方法语法 查询语法:一种类似 SQL 语法的查询方式 方法语法:通过扩展方法和Lambda表达式来创建查询 例如: List<, , , }; //查询语 ...

  2. Sliverlight linq中的数组筛选数据库中的数据

    首先 什么是linq呢 ? LINQ即Language Integrated Query(语言集成查询),LINQ是集成到C#和Visual Basic.NET这些语言中用于提供查询数据能力的一个新特 ...

  3. C#8.0: 在 LINQ 中支持异步的 IAsyncEnumerable

    C# 8.0中,提供了一种新的IAsyncEnumerable<T>接口,在对集合进行迭代时,支持异步操作.比如在读取文本中的多行字符串时,如果读取每行字符串的时候使用同步方法,那么会导致 ...

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

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

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

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

  6. 关于Linq中的Lambda表达式中OrderBy的深入理解

    起因:就是一段Linq语句,OrderBy里面的i是什么? IQueryable<Student> slist = (from s in EFDB.Student select s). O ...

  7. Linq中关键字的作用及用法

    Linq中关键字的作用及用法 1.All:确定序列中的所有元素是否都满足条件.如果源序列中的每个元素都通过指定谓词中的测试,或者序列为空,则为 true:否则为 false. Demo: 此示例使用 ...

  8. Linq 中按照多个值进行分组(GroupBy)

    Linq 中按照多个值进行分组(GroupBy) .GroupBy(x => new { x.Age, x.Sex }) group emp by new { emp.Age, emp.Sex ...

  9. Linq 中的 left join

    Linq 中的 left join 表A User: 表B UserType: Linq: from t in UserType join u in User on t.typeId equal u. ...

随机推荐

  1. 分分钟钟学会Python - 数据类型(int、bool、str)

    第三天学习内容 今日内容 1.整型(int) 2.布尔类型(bool) 3.字符串(str) 内容详细 1.整型 Python中的整型用int表示. 1.python2中: 在32位机器上,整数的位数 ...

  2. UML-6.3-用例-详述示例

    用例标示:摘要(主成功场景).非正式(几乎所有场景).详述. 下边主要说下详述.其模板: 例子: 用例UC1:处理销售 范围 NextGen POS应用 级别 用户目标 主要参与者 收银员 涉众及关注 ...

  3. Java中String与Date格式之间的转换

    转自:https://blog.csdn.net/angus_17/article/details/7656631 经常遇到string和date之间的转换,把相关的内容总结在这里吧: 1.strin ...

  4. 基于python实现GET和POST请求及token相关调用

    GET请求实例: #coding:utf- import requests parm={"}#封装登录参数 r=requests.get("http://space.test.co ...

  5. SpringBoot内嵌Tomcat开启APR模式(运行环境为Centos7)

    网上查到的一些springboot内嵌的tomcat开启apr的文章,好像使用的springboot版本较老,在SpringBoot 2.0.4.RELEASE中已经行不通了.自己整理了一下,供参考. ...

  6. UGUI优化总结

    1.动静分离 canvas下元素变化时,会使整个canvas重新绘制.因此将ui经常改变和不怎么改变的部分分离,分别使用不同的canvas. 2.图集优化 不同界面的ui,可以打包成不同的图集,一些公 ...

  7. java.security.MessageDigest的使用之生成安全令牌!

    时候,我们需要产生一个数据,这个数据保存了用户的信息,但加密后仍然有可能被人使用,即便他人不确切的了解详细信息... 好比,我们在上网的时候,很多网页都会有一个信息,是否保存登录信息,以便下次可以直接 ...

  8. Shiro: 权限管理

    一.权限管理 1.什么是权限管理   权限管理属于系统安全的范畴,权限管理实现对用户访问系统的控制,按照安全规则或者安全策略控制用户可以访问且只能访问自己被授权的资源.   权限管理包括用户身份认证和 ...

  9. plpgsql insert 性能 测试

    有时需要执行一些sql脚本,带逻辑控制语句,又不想用高级语言C#.Java之类的,可以直接用plpgsql,类似于Oracle的plsql. do language 'plpgsql' $$ decl ...

  10. 原创:微信小程序java实现AES解密并获取unionId

    来自:微信小程序联盟 如果大家使用小程序的同时还在使用公众号的话,可能会用到unionId这种功能,由于公司业务需要,我们需要使用unionId,具体使用方法,请参考微信开放平台的说明,但是在微信小程 ...