我开始探索Linq to SQL,这次我试图使用'Contains'方法和我有以下代码编写
本文关键字:方法 Contains 代码 to Linq 探索 开始 SQL | 更新日期: 2023-09-27 18:19:19
我得到的错误信息是:
方法"System.Linq. queryable . contains (System.Linq. queryable)"的类型参数。IQueryable, TSource)'不能从用法中推断出来。尝试显式指定类型参数。
当我运行下面的代码时,我得到一个错误消息,说我需要显式地指定方法包含的参数类型。
var result2 = from cltIntake in db.Client_Intakes
where (from cltElig in db.Client_Eligibility_Referrals
where (
from cltDoctVerif in db.Doct_Verifications
where cltDoctVerif.Verification_Status == "Yes"
select cltElig.Asgnd_Caseworker_ID == 6
).Contains(cltElig.Client_Eligibility_ID)
select new { client_Eligibility_ID = cltElig.Client_Eligibility_ID }
).Contains(cltIntake.Client_Intake_ID)
select new
{
cltInfo.First_Name,
cltInfo.Last_Name,
};
我看了很多,并试图转换为int类型,因为集合是int类型,如下所示
.Contains<Int32>(cltElig.Client_Eligibility_ID)
但是抛出了一个错误:
如果有人能给我一个解决这个问题的方法,我真的很感激。问题是我对IQueryable了解不多。谢谢你实例参数:不能从"System.Linq. net"转换。到System.Linq.IQueryable实例参数:不能从"System.Linq. net"转换。IQueryable'到'System.Linq.IQueryable'
问题是您的选择正在创建一个匿名类型序列,但是您对Contains的调用传递了一个Int
所以除了select new { client_Eligibility_ID = cltElig.Client_Eligibility_ID }
还有select cltElig.Client_Eligibility_ID
还有select cltElig.Asgnd_Caseworker_ID == 6' which is projecting a boolean. You probably wanted
&&cltElig。Asgnd_Caseworker_ID == 6 '
var result2 = from cltIntake in db.Client_Intakes
from cltElig in db.Client_Eligibility_Referrals
from cltDoctVerif in db.Doct_Verifications
where cltDoctVerif.Verification_Status == "Yes"
&& cltElig.Asgnd_Caseworker_ID == 6
&& cltDoctVerif.Client_Eligibility_ID ==
cltElig.Client_Eligibility_ID
&& cltElig.Client_Eligibility_ID ==
cltIntake.Client_Intake_ID
select new
{
cltInfo.First_Name,
cltInfo.Last_Name,
};