次のコード ブロック (C#) を使用している場合:
var query = context.Set.Where(o => o.Email.Contains("Mail@gmail.com"));
var stringQuery = ((System.Data.Objects.ObjectQuery)query).ToTraceString();
linq は次のクエリを生成します。
SELECT *
FROM [SET] AS [Extent1]
WHERE [Extent1].[Email] LIKE '%Mail@gmail.com%'
次のコード ブロックを使用している場合:
string email = "Mail@gmail.com";
var query = context.Set.Where(o => o.Email.Contains(email));
var stringQuery = ((System.Data.Objects.ObjectQuery)query).ToTraceString();
linq は次のクエリを生成します。
SELECT *
FROM [Set] AS [Extent1]
WHERE [Extent1].[Email] LIKE @p__linq__0 ESCAPE N'~'
最初のケースのように、文字列をハードコードせずに linq にクエリを生成させ、代わりに文字列パラメーターとして渡すにはどうすればよいですか?