任何人都可以解釋我如何在C#中使用(1)iQueryable(2)表達式樹提供一個非常基本的例子嗎?兩者都沒有關聯,我沒有提出兩個不同的問題,而是希望在一個問題上明確我的疑問。iQueryable和表達式樹
高級謝謝。
任何人都可以解釋我如何在C#中使用(1)iQueryable(2)表達式樹提供一個非常基本的例子嗎?兩者都沒有關聯,我沒有提出兩個不同的問題,而是希望在一個問題上明確我的疑問。iQueryable和表達式樹
高級謝謝。
我一般不喜歡只是連接東西,但這是一個更復雜的話題。我建議看這個視頻:
http://channel9.msdn.com/shows/Going+Deep/Erik-Meijer-and-Bart-De-Smet-LINQ-to-Anything/
埃裏克解釋了這個偉大的工作,並給出了一個整齊的LINQ to辛普森例子。
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.
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);