ExpressionTree 抜きで動的にLINQの Where を指定するよう試す。
LINQ to SQL では使えないけど、一応手といえば手。
だってExpressionTreeとか弄るのヤだもん。俺、、、、
やってることは、匿名デリゲートを作ってWhereに突っ込んでるだけです。
で、匿名デリゲートを動的にポンポン作れば、動的なフィルタの出来上がり〜。
実装が汚いとか受け付けないw
class UserData { public string user_name { get; set; } public int user_age { get; set; } public string user_mail { get; set; } } class Program { delegate bool UserDelegate(UserData data); static void Main(string[] args) { UserData[] datas = new UserData[50]; for (int i = 0; i < 50; i++) { datas[i] = new UserData() { user_name = "User" + i.ToString(), user_age = i, user_mail = "white-azalea.net" }; } var query = from p in datas where p.user_age > 10 && p.user_age < 30 select p; query = query.Where(p => getAzaleaDelegate()(p)); foreach (UserData data in query) { Console.WriteLine(data.user_name); } } static UserDelegate getAzaleaDelegate() { return delegate(UserData data) { return data.user_mail == "white-azalea.net"; }; } }