2009-10-15 86 views
0

任何人都可以解釋我如何在C#中使用(1)iQueryable(2)表達式樹提供一個非常基本的例子嗎?兩者都沒有關聯,我沒有提出兩個不同的問題,而是希望在一個問題上明確我的疑問。iQueryable和表達式樹

高級謝謝。

回答

3

Expression trees都做出很簡單:

Expression<Func<int,int,int>> addExp = (a,b) => a + b; 

var paramA = Expression.Parameter(typeof(int), "a"); 
var paramB = Expression.Parameter(typeof(int), "b"); 
Expression<Func<int,int,int>> addExp = Expression.Lambda<Func<int,int,int>>(
    Expression.Add(paramA, paramB), 
    paramA, 
    paramB); 

建立一個IQueryable提供者是相當困難的。但是,Matt Warren has a very indepth series that walks you through creating an IQueryable provider.

0
Expression<Func<T, string, PropertyInfo>> expression = (obj, str) => 
    obj.GetType() 
     .GetProperty(
      obj.GetType() 
       .GetProperties() 
       .ToList() 
       .Find(prop => 
        prop.Equals(str, StringComparison.OrdinalIgnoreCase).Name.ToString()); 
var obj = expression.Compile()(rowsData.FirstOrDefault(), sortIndex);