嗨
如何篩選BindingSource中存在實體(使用EF 4)的結果?
我試過這樣: mybindingsource.Filter = "cityID = 1"
但似乎結合與實體框架源不支持過濾..我是正確的,是有另一種方式來過濾綁定源(搜索)數據。Filter BindingSource with entity framework
PS:
- 我正在開發Windows應用程序而不是ASP.NET。
- 我使用列表框顯示結果。
Thanx
嗨
如何篩選BindingSource中存在實體(使用EF 4)的結果?
我試過這樣: mybindingsource.Filter = "cityID = 1"
但似乎結合與實體框架源不支持過濾..我是正確的,是有另一種方式來過濾綁定源(搜索)數據。Filter BindingSource with entity framework
PS:
- 我正在開發Windows應用程序而不是ASP.NET。
- 我使用列表框顯示結果。
Thanx
我想,你在語法上犯了錯誤。你應該寫這樣的過濾器:
mybindingsource.Filter = "cityID = '1'"
另一種方法是使用LINQ表達式。
(關於LINQ) 爲什麼您必須再次致電Entety?
簡單的解決方案:
public List<object> bindingSource;
public IEnumerable FiltredSource
{
get{ return bindingSource.Where(c => c.cityID==1);
}
.where (Function (c) c.cityID = 1)
也許比獅子座更好的一個:
private BindingSource _bs;
private List<Entity> _list;
_list = context.Entities;
_bs.DataSource = _list;
現在,在需要時過濾:
_bs.DataSource = _list.Where<Entity>(e => e.cityID == 1).ToList<Entity>;
這樣你保持原有的清單(這是retri從上下文中刪除一次),然後使用這個原始列表在內存中進行查詢(而不是來回訪問數據庫)。通過這種方式,您可以對原始列表執行各種查詢。
我會盡量改變你所建議的語法,但LINQ表達式呢?我怎麼能在綁定源上使用它,而無需通過上下文再次調用實體? – Dabbas 2011-01-30 18:35:27
它不起作用。當使用EF + binding時,不支持過濾器支柱。源 – Dabbas 2011-02-16 08:28:30
好的。我已經添加了解決方案在我的答案=) – Leonid 2011-02-16 16:12:24