1
我看到了哪裏在執行之前。 但我想知道有人可以讓我寫一篇文章「WhereAnyIn」。linq到實體,像WhereAnyIn這樣的運算符?
例如: 香港專業教育學院的實體: 帖子--- PostTag ---標籤
我需要參數INT [] tagids,這其中取有任何標籤識別的在給定的所有職位查詢 列表。
我找不出來。
感謝您的幫助。
我看到了哪裏在執行之前。 但我想知道有人可以讓我寫一篇文章「WhereAnyIn」。linq到實體,像WhereAnyIn這樣的運算符?
例如: 香港專業教育學院的實體: 帖子--- PostTag ---標籤
我需要參數INT [] tagids,這其中取有任何標籤識別的在給定的所有職位查詢 列表。
我找不出來。
感謝您的幫助。
static void Main(string[] args)
{
int[] integers = Enumerable.Range(0, 10).ToArray();
Expression<Func<Post, bool>> expression = CreateWhereInExpression<Post, int>(p => p.Tag, integers);
}
static Expression<Func<TItem, bool>> CreateWhereInExpression<TItem, TValue>(Expression<Func<TItem, TValue>> lambda, TValue[] items)
{
if (lambda != null)
{
MemberExpression memberExpression = lambda.Body as MemberExpression;
if (memberExpression != null && memberExpression.Expression == lambda.Parameters[0])
{
Expression body;
if (items == null || items.Length == 0)
{
body = Expression.Constant(
true
);
}
else
{
body = items.Skip(1).Aggregate(
Expression.Equal(
memberExpression,
Expression.Constant(items[0])
),
(expression, item) => Expression.OrElse(
expression,
Expression.Equal(
memberExpression,
Expression.Constant(
item
)
)
)
);
}
return Expression.Lambda<Func<TItem, bool>>(
body,
lambda.Parameters
);
}
}
return null;
}