我正在尝试在 2 个表之间编写一个 ling 2 实体左连接查询,其中连接列在表中具有不同的数据类型。因此,我使用 new 关键字使用 SqlFunctions.StringConvert() 函数执行字符串转换。
但这会引发错误,提示“只能从 LINQ to Entities 调用此函数。”
sql查询看起来像这样......
select distinct j.jobid from jobs j
left join jobfilters jf
on j.jobid = jf.jobid
left join vwbranchmaster bm
on bm.branchid = jf.jobfilterkey
在这个查询中,bm.branchid 是 int,jobfilterkey 是 nvarchar。不幸的是,Branchmaster 位于外部数据库中,因此我们无法修改数据库列。
L2E 查询看起来是这样的,(请注意 dt 是 DataTable 转换为 Enumerable 类型)
from J in dt
join JFBRegion in JobFilter on J.Field<Guid>("JobId") equals JFBRegion.JobID into JFBRegion_join
from JFBRJ in JFBRegion_join.DefaultIfEmpty()
join BRMAS in BranchMaster on new { JobFilterKey = JFBRJ.JobFilterKey } equals new { JobFilterKey = SqlFunctions.StringConvert((decimal)BRMAS.BranchID) } into BMASJF_join
from BMASJF in BMASJF_join.DefaultIfEmpty()
请让我知道我在这里做错了什么,或者这是否可能。
谢谢。