結合列のデータ型がテーブル内に異なる2つのテーブル間で、ling2エンティティの左結合クエリを作成しようとしています。したがって、新しいキーワードを使用して、SqlFunctions.StringConvert()関数を使用して文字列変換を実行します。
ただし、これにより、「この関数はLINQからエンティティにのみ呼び出すことができます」というエラーがスローされます。
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は外部DBにあるため、DB列を変更することはできません。
L2Eクエリは次のようになります(dtはEnumerableタイプに変換されたDataTableであることに注意してください)
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()
ここで私が間違っていること、またはこれが可能かどうかを教えてください。
ありがとう。