@Prog! - ASP.NET -
ASP.NET(C#) - AJAX, Silverlight - のメモ書き

LINQ 動的に条件を追加する

Latest post 10-29-2008 13:07 by Yu Asano. 0 replies.
  • 10-29-2008 13:07

    • Yu Asano
    • Top 10 Contributor
    • Joined on 10-22-2008
    • Japan
    • Posts 208
    • Points 0

    LINQ 動的に条件を追加する

        public class LinqHelper
        {
            /// <summary>
            /// 動的にLINQ条件を追加する
            /// </summary>
            /// <typeparam name="T">IQueryable</typeparam>
            /// <typeparam name="C">Expression.Constant</typeparam>
            /// <param name="queryable">クエリ原型</param>
            /// <param name="property">プロパティ名</param>
            /// <param name="constant">Value</param>
            /// <returns>IQueryable</returns>
            public IQueryable<T> AddParameterExpression<T, C>(IQueryable<T> queryable, string property, C constant)
            {
                ParameterExpression parameterExpression = Expression.Parameter(typeof(T), "param");

                Expression<Func<T, bool>> ex = Expression.Lambda<Func<T, bool>>(
                    Expression.Equal(
                            Expression.Property(parameterExpression, typeof(T).GetProperty(property)),
                            Expression.Constant(constant, typeof(C)),
                            false,
                            typeof(T).GetMethod("op_Equality")
                    ),
                    new ParameterExpression[] { parameterExpression }
                );

                return queryable.Where(ex);
            }
        }
    }

    • Post Points: 0
Page 1 of 1 (1 items) | RSS
momotchi.net
Powered by Community Server (Non-Commercial Edition), by Telligent Systems