我在 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
至少这就是错误消息的意思。