我有一個LINQ查詢我希望運行並將結果放到var或IQueryable中。但是,我將結果綁定到多個(4到10)控件,只希望查詢運行一次。將多個控件數據綁定到單個LINQ查詢
- 我只是把結果納入所有數據源值,查詢每一個控制和控件(組合框等),改變selectedvalues只要其中任何改變,以配合對方運行。
- 當我將控件綁定到result.ToList()或類似的東西上時,它修復了同步問題(即它們的行爲應該是獨立的),但是對於每個控件,查詢仍然運行一次。
這是ADO.NET日子裏的easycakes。我怎樣才能使LINQ查詢運行一次,仍然綁定到多個控件?
僞代碼:
var result = from c in dc.whatevers select c;
ddlItem1.DataSource = result;
ddlItem2.DataSource = result;
ddlItem3.DataSource = result;
另外:
var result = from c in dc.whatevers select c;
ddlItem1.DataSource = result.ToList();
ddlItem2.DataSource = result.ToList();
ddlItem3.DataSource = result.ToList();
另外:
List<whatever> result = (from c in dc.whatevers select c).ToList();
ddlItem1.DataSource = result;
ddlItem2.DataSource = result;
ddlItem3.DataSource = result;
這似乎很奇怪,我認爲你的最後一個例子就不會工作。我的印象是,它必須立即在那個時候評估查詢。 – 2010-08-13 19:52:18