查询正文必须以核心方法上的选择子句或组子句结尾



我在 LINQ 中编写查询时遇到错误:

var shortsms = await (from url in _dbContext.UrlBank
where url.LockBatchId ==
(from batch in _dbContext.LockBatch
where batch.LockBatchId.Equals(38)
&& 
url.IsAssigned == 0 
&& 
url.IsLocked.Equals(1)
)
);

在结果中,我需要 UrlBank 中 ShortUrl 的第一个或默认值。

显示错误消息是因为您缺少两个选择子句。它应该是这样的:

var shortsms = await (from url in _dbContext.UrlBank
where url.LockBatchId ==
(from batch in _dbContext.LockBatch
where batch.LockBatchId.Equals(38) && url.IsAssigned == 0 && url.IsLocked.Equals(1) select batch.Id) select url.ShortUrl);

您需要选择输出值。

像这样:

var shortsms = await (from url in _dbContext.UrlBank
where url.LockBatchId ==
(from batch in _dbContext.LockBatch
where batch.LockBatchId.Equals(38) && url.IsAssigned == 0 && url.IsLocked.Equals(1) select batch.BatchId) // or whatever
select url.ShortUrl           // <---
).FirstOrDefaultAsync(); // if you use the QueryableExtensions

至少这就是错误消息的意思。

最新更新