C# linq to entity を使用して 2 つのテーブルを結合しようとしています。
1 つのテーブルにはクライアントがあり、もう 1 つのテーブルにはライセンスがあります。テーブルは Client_ID と ClientLicence_ClientID によって結合されます。何らかの理由で (それらは私のテーブルではありません)、Client_ID は int であり、ClientLicence_ClientID は文字列です。
私が持っているコードは次のとおりです。
var licences = (from client in entities.Clients
join licence in entities.ClientLicences
on new { clientId = SqlFunctions.StringConvert((double)client.Client_ID) } equals
new { licence.ClientLicence_ClientID }
into clientGroup
where (filter.clientId == 0 || client.Client_ID == filter.clientId)
select licence);
これをコンパイルしようとすると、エラーが発生します: 結合句の式の 1 つの型が正しくありません。'GroupJoin' の呼び出しで型の推定に失敗しました。
whereステートメントをコメントアウトすると、機能します(結果をフィルタリングしなくても)。
フィルター変数は、関数に渡されるクラスです。プロパティは 1 つだけです: int clientId.