2014-10-18 86 views
1

我想創建一個通用的方法來只讀取天藍色表的一些屬性。創建這個林利用TableQuery的,但一些如何IM無法通過篩選條件如何使用新的TableQuery <T>蔚藍表存儲

public IEnumerable<T1> ExecuteQuery<T, T1>(Expression<Func<T,bool>> predicate) 
     where T : TableEntity, IDomainData, new() 
     where T1 : new() 
    { 

     Type typeParameterType = typeof(T); 
     CloudTable tableReference = tableClient.GetTableReference(typeParameterType.Name); 


     var query = new TableQuery<T>() 
     { 
      FilterString = predicate.Body.ToString(), 
      SelectColumns = typeof(T1).GetListOfPropertyNames() 
     }; 
     query = query.Where(predicate).AsTableQuery(); ==> Throws error Object reference error 


     return tableReference.ExecuteQuery(query) as List<T1>; 

     //return tableReference.ExecuteQuery<T, T1>(query,EntityAdapter.AdapterResolver<T1>); 

    } 

有沒有哪裏Filterstring傳遞給TableQuery與蔚藍的表實例

回答

1

如果您正試圖執行TableQuery得到了過濾條件沿着表格屬性的一個子集,你會擁有它使用選擇和Where子句如下指定 -

TableQuery<T> query = new TableQuery<T>().Select(new List<string>() { "prop1", "prop2" }).Where("filter string"); 
List<T> result = currentTable.ExecuteQuery(query).ToList(); 

此外,還有在存儲客戶端庫的輔助方法,你可以用於缺點將濾波器串合併。請參閱TableQuery.GenerateFilterCondition。

+0

我正在尋找表達式>謂詞,而不是轉換爲字符串謂詞。 – user145610 2014-11-11 18:55:19

+0

TableQuery carQuery = new TableQuery ()。 選擇(新列表 {「Make」,「Model」,「Year」,「Vin」})。參考:https://docs.microsoft.com/en-us/azure/vs-azure-tools-table-designer-construct-filter-strings – Abhi 2018-02-04 05:02:11