2011-12-27 51 views
2

我有一個包含一個通用字典類:暴露了LINQ保護收集查詢

protected Dictionary<K,T> Data { get; set;} 

我希望允許這個類的客戶,而無需返回字典執行LINQ查詢。我曾看過AsQueryable(),但似乎並沒有按照我的意願去做。

我還想寫將是代碼的一個例子:

typeRepo.Query().Where(x => x.name == "wire") 

回答

2

看起來字典是通過其鍵(K)持有模型(T)的。您需要的代碼是:

public IQueryable<T> Query 
{ 
    get { return Data.Values.AsQueryable(); } 
} 
2

只需添加一個公共財產那樣:

public IEnumerable<KeyValuePair<K,T>> Query 
{ 
    get { return Data.AsEnumerable(); } 
} 

,它應該像你期望的那樣。