Guest User

Untitled

a guest
Apr 26th, 2018
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.41 KB | None | 0 0
  1. Offre.Where(o=> o.Domain.Contains("26") || o.Domain.Contains("100") )
  2.  
  3. Offre.Where(o=> o.Domain.Contains("26") )
  4.  
  5. Offre.Where(o=> o.Domain.Contains("26") || o.Domain.Contains("100") || o.Domain.Contains("22") )
  6.  
  7. static Expression<Func<TElement, bool>> BuildContainsExpression<TElement, TValue>(
  8.  
  9. Expression<Func<TElement, TValue>> valueSelector, IEnumerable<TValue> values)
  10.  
  11. {
  12.  
  13. if (null == valueSelector) { throw new ArgumentNullException("valueSelector"); }
  14.  
  15. if (null == values) { throw new ArgumentNullException("values"); }
  16.  
  17. ParameterExpression p = valueSelector.Parameters.Single();
  18.  
  19. // p => valueSelector(p) == values[0] || valueSelector(p) == ...
  20.  
  21. if (!values.Any())
  22.  
  23. {
  24.  
  25. return e => false;
  26.  
  27. }
  28.  
  29. var equals = values.Select(value => (Expression)Expression.Equal(valueSelector.Body, Expression.Constant(value, typeof(TValue))));
  30.  
  31. var body = equals.Aggregate<Expression>((accumulate, equal) => Expression.Or(accumulate, equal));
  32.  
  33. return Expression.Lambda<Func<TElement, bool>>(body, p);
  34.  
  35. }
  36.  
  37. var query2 = context.Entities.Where(BuildContainsExpression<Entity, int>(e => e.ID, ids));
  38.  
  39. Public Shared Function BuildContainsExpression(Of TElement, TValue)( _
  40. ByVal valueSelector As Expression(Of Func(Of TElement, TValue)), _
  41. ByVal values As IEnumerable(Of TValue) _
  42. ) As Expression(Of Func(Of TElement, Boolean))
  43.  
  44. ' validate arguments
  45. If IsNothing(valueSelector) Then Throw New ArgumentNullException("valueSelector")
  46. If IsNothing(values) Then Throw New ArgumentNullException("values")
  47.  
  48. Dim p As ParameterExpression = valueSelector.Parameters.Single()
  49. If Not values.Any Then
  50. Return _
  51. Function(e) False
  52. End If
  53.  
  54. Dim equals = values.Select( _
  55. Function(v) _
  56. Expression.Equal(valueSelector.Body, Expression.Constant(v, GetType(TValue))) _
  57. )
  58.  
  59. Dim body = equals.Aggregate( _
  60. Function(accumulate, equal) _
  61. Expression.Or(accumulate, equal) _
  62. )
  63.  
  64. Return Expression.Lambda(Of Func(Of TElement, Boolean))(body, p)
  65. End Function
  66.  
  67. Dim query = m_data. Offer
  68.  
  69. If (selectedSectors.Count > 0) Then
  70. query = query.Where(BuildContainsExpression(Function(o As Offer) o.Value, selectedSectors))
  71. End If
  72.  
  73. List<int> queryCriteria = new List<int>;
  74.  
  75. //Fill your query criteria here
  76.  
  77. //Instead of o.Domain.Id you can use whatever ID you have.
  78. var resultSet = Offre.Where(o => queryCriteria.Contains(o.Domain.Id));
Add Comment
Please, Sign In to add comment