2010-08-28 67 views
3

我需要在我的方法如何從字符串中製作動態lambda表達式?

public static class QueryableDynamicExtension 
{ 
    public static IQueryable<T> DynamicEquals<T>(
     this IQueryable<T> query, 
     string field, 
     object value) 
    { 
     Expression<Func<T, bool>> expr = ???     

     return query.Where(expr); 
    } 
} 

使用Lambda表達式在這種方法中,我想把它當作

IQueryable<Article> articles = new ModelDataContext().Articles.Where(m => m.CategoryId == 5); 
// I want replace by 
IQueryable<Article> articles = new ModelDataContext().Articles.DynamicEquals("CategoryId", 5); 

我應該怎樣建立這種情況下,「expr的」迴歸一樣嗎?請幫忙。

回答

2

您可以查看動態LINQ庫,如blogged by Scott Gu here。我之前使用過這種方法,我已經爲工作構建了基於規則的產品系統,並使用存儲在數據庫層中的動態表達式來提供額外的表達式來過濾掉產品集。

+0

感謝您的回答,我也知道動態LINQ庫,它可以解決我的問題,但它太複雜了,我只想在我的項目中使用一些Lambda表達式。所以如果可能的話,你可以爲我解決我的問題。謝謝! – user433557 2010-08-29 02:23:58

相關問題