LIKEステートメントで結果をフィルタリングするかなり複雑なクエリがあります。クエリは次のとおりです。
var qsFilter = entities.QueryStatements.Where("it.Statement LIKE @searchTerm",
new ObjectParameter("searchTerm", searchTerm));
var qtFilter = entities.QueryTables.Where("it.TableNames LIKE @searchTables",
new ObjectParameter("searchTables", searchTerm));
その後:
var tables = from t in entities.TraceLines
join qs in qsFilter on t.QueryStatementHash equals qs.QueryStatementHash
join qt in qtFilter on qs.QueryTableHash equals qt.QueryTableHash
where t.CallTypeId == 64
orderby t.Sequence
select new
{
Name = qt.TableNames
};
問題は、最後のクエリで、2つのLIKEフィルターのAND句が生成されることです。
WHERE ([Filter1].[Statement] LIKE @searchTerm) AND
([Extent3].[TableNames] LIKE @searchTables)
これをOR句にするにはどうすればよいですか?
注:ここでESQLを使用している理由がわからない場合は、次の理由があります。LINQtoEntitiesでSQL'LIKE 'を使用するにはどうすればよいですか。