如何在LINQ中的where子句中进行嵌套选择
本文关键字:嵌套 选择 子句 where LINQ 中的 | 更新日期: 2023-09-27 18:00:55
考虑以下SQL语句:
SELECT tfd.[ID],
tfd.[TaxFormID],
tfd.[TaxCodeLineNumber],
tfd.[TaxCodeLineDescription]
FROM [TaxCode].[TaxFormDetail] tfd
WHERE tfd.[TaxFormID] = (SELECT TOP 1 cri.[TaxFormID] FROM [settings].[CompanyReportInformation] cri)
数据库在"cri"表中有一条记录,作为预防措施,我想做一条前一条记录。
我有以下LINQ语句不起作用,这是我需要帮助的地方。
var _query = (
from tfd in TaxFormDetails
where tfd.TaxFormID ==
(from cri in CompanyReportInformation select new {cri.TaxFormID}).Take(1)
select new {tfd.ID, tfd.TaxFormID, tfd.TaxCodeLineNumber, tfd.TaxCodeLineDescription});
_query.Dump();
我得到以下错误:
运算符"=="不能应用于"System.Guid?"类型的操作数和"System.Linq.IQueryable">
我需要对我的LINQ语句做些什么才能使它发挥作用?
... select cri.TaxFormID).FirstOrDefault()
您正在将内部选择包装成一个匿名类型:
select new {cri.TaxFormID}
应该是
select cri.TaxFormID