두 개 이상의 키워드를 검색하려면 수정해야 할 기존 코드가 있습니다. LINQ vb를 사용하여 여러 키워드 검색
Dim topics As IQueryable(Of Global.Platform.Core.Data.Topic) = _
From t In _db.Topics
Where t.IsActive = True And t.TopicTitle.Contains(criteria) And t.ForumID = 0 And Not t.TopicTitle.Contains("default") And t.Member.IsActive = True And t.IsActive = True
Order By t.DateCreated Descending
Select t
Take (take_x)
Return topics
어떻게 내가 기준 "고양이 머리"를 입력 한 경우 그래서는 OR 검색을 수행 할이 변경에 대한 갈 것이라고 (나는 그런데이 모든 새로운 오전). 그래서
...t.TopicTitle.Contains("cat") OR t.TopicTitle.Contains("hair") ...
. 물론 역동적 일 필요가 있습니다.
시도했지만 작동하지 못했습니다.
Dim criteriaArr As Array = criteria.Split(" ")
Dim new_criteria As String = " t.TopicTitle.Contains(" + criteriaArr(0) + ")"
If criteriaArr.Length > 1 Then
For Each item As String In criteriaArr
new_criteria += " Or t.TopicTitle.Contains(" + item + ")"
Next
End If
아이디어는 공백을 분할하고 where 절에 계속 추가하는 것이 었습니다. SQL에서 이것이 효과가 있었는지는 알지만,이 시나리오에서는 어떻게해야할까요?
당신은.Any
및
.Contains
의 조합을 사용할 수 있습니다
감사하지만 말했듯이, 저는이 모든 것을 처음 접했습니다. 나는 VB 구문에서 뭔가가 필요합니다. – odle
이러한 방법은 동일한 방식으로 사용됩니다. ' \t 경우 strings.Any (S => t.TopicTitle.Contains (들)) \t 선택 t _db.Topics에서 t에서 = _ (Global.Platform.Core.Data.Topic의) 된 IQueryable로 \t을 주제 어둡게 ; 그런 것. – Gromer
VB와 C#간에 번역하려면이 링크를 사용하십시오. [C#에서 VB로] (http://www.developerfusion.com/tools/convert/csharp-to-vb/) –