我在Linq中编写了以下查询:
var res = dc.TransactionLoggings
.Where(
x => !dc.TrsMessages(y => y.DocId != x.DocId)
).Select(x => x.CCHMessage).ToList();
解决以下问题:
SELECT [t0].[CCHMessage]
FROM [dbo].[TransactionLogging] AS [t0]
WHERE NOT (EXISTS(
SELECT NULL AS [EMPTY]
FROM [dbo].[TrsMessages] AS [t1]
WHERE [t1].[DocId] <> [t0].[DocId]
))
总是返回null
我要写的Basiaclly内容如下:
Select cchmessage
from transactionlogging
where docid not in (select docid from trsmessages)
关于我的LINQ语句有什么问题的任何建议吗?
最佳答案
var res = dc.TransactionLoggings
.Where(tl => !dc.TrsMessages.Any(trsm=> trsm.DocId == tl.DocId))
.Select(x => x.CCHMessage).ToList();
要么
var trsMessagesDocId = dc.TrsMessages.Select(trsm => trsm.DocId).ToList();
var res = dc.TransactionLoggins
.Where(tl => !trsMessagesDocId.Contains(tl.DocId))
.Select(tl => tl.CCHMEssage)
.ToList();
关于linq - linq“不在”查询无法解决我的期望,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11259051/