का उपयोग करके गतिशील बनाना, मैं एक गतिशील लिखने की कोशिश कर रहा हूं जहां LINQ का उपयोग करके सभी पंक्तियों को वापस करने के लिए क्लॉज का उपयोग करना है जिसमें स्ट्रिंग सरणी में कोई भी कीवर्ड शामिल है। नतीजों के मुकाबले परिणाम वापस नहीं आते हैं और एसक्यूएल को देखकर मैं समस्या देख सकता हूं।डायनामिक कीवर्ड के लिए क्लॉज या IQueryable C# Linq
IQueryable<comments> query = _db.comments;
if (score != null)
query = query.Where(x => x.score == score);
if (dateFrom != null)3
query = query.Where(x => x.date_created >= dateFrom);
if (dateTo != null)
query = query.Where(x => x.date_created <= dateTo);
if (keywords != null)
{
//how to use OR for each in array?
foreach (var keyword in keywords)
{
var keywordCondition = keyword;
query = query.Where(x => x.text.Contains(keywordCondition));
}
}
WHERE ([Extent1].[score] = @p__linq__0)
AND ([Extent1].[date_created] >= @p__linq__1)
AND ([Extent1].[date_created] <= @p__linq__2)
AND ([Extent1].[text] LIKE @p__linq__3 ESCAPE '~')
AND ([Extent1].[text] LIKE @p__linq__4 ESCAPE '~')
हो --should
WHERE ([Extent1].[score] = @p__linq__0)
AND ([Extent1].[date_created] >= @p__linq__1)
AND ([Extent1].[date_created] <= @p__linq__2)
AND (([Extent1].[text] LIKE @p__linq__3 ESCAPE '~')
OR ([Extent1].[text] LIKE @p__linq__4 ESCAPE '~'))
मुझे आशा है कि कोई मेरी मदद कर सकते के रूप में मैं कुछ घंटों बिताया है अब एक समाधान के लिए खोज।
अग्रिम
समस्या क्या है और इसका क्या अर्थ है: // कैसे उपयोग करें या सरणी में प्रत्येक के लिए? – MajkeloDev
आप विशिष्टता पैटर्न http://en.wikipedia.org/wiki/Specification_pattern पर एक नज़र डालना चाहते हैं। पैटर्न का एक सरल कार्यान्वयन यहां पाया जा सकता है https://github.com/pmacn/Specific –