この質問を追加する前に、私は同様のものについてはstackoverflowで検索しましたが、私は見つけることができませんでした。インターネット上の質問のほとんどは、文字列(たとえばLIKE '%ABC%'など)でLIKEを使用していましたが、別のテーブルの既存の列と比較する必要があります。LinqのSQL LIKE
私は以下のようにselect文のためのLINQクエリを記述する必要が- 私はLINQクエリ以下を思い付いたが、期待通りのが機能していない
select *
from [dbo].[BaseClaim]
where WPId like (select WPId from UserProfiles where ID='1459')
-
var result = (from claimsRow in context.BaseClaims
where (from upRow in context.UserProfiles
where upRow.ID == 1459
select upRow.WPId).Contains(claimsRow.WPId)
select claimsRow);
とSQL linqが生成する上記のとおりです -
SELECT
[Extent1].[WPId] AS [WPId]
FROM [dbo].[BaseClaim] AS [Extent1]
WHERE EXISTS (SELECT
1 AS [C1]
FROM (SELECT
[UserProfiles].[ID] AS [ID],
[UserProfiles].[WPId] AS [WPId]
FROM [dbo].[UserProfiles] AS [UserProfiles]) AS [Extent2]
WHERE (1459 = [Extent2].[ID]) AND ([Extent2].[WPId] = [Extent1].[WPId]))
私のlinqは、 LIKEの代わりにbaseclaim.wpIDをuserprofiles.wpidと比較します。あなたが使用する必要があります
なぜ 'like'を使用しますか? 'WPId'に'% '文字はありますか? –
@Saiは私の答えを以下に見てください。私はそれがヒットすることを願っています。 – aiapatag
@GertArnoldはいWPIdに%文字があります。 – Sai