2013-06-18 22 views
1

我有一個客戶表各個領域,其中之一是「郵編」 我想找到訂單客戶的客戶名稱,並希望找到第一行的匹配郵編如何使用EF 5獲取表中匹配行的行索引?

例如索引,它應按客戶名稱訂購後返回郵編爲「WS01 3GE」的第一客戶索引。 我不知道如何實現它。

任何人都可以幫我解決這個問題嗎?

感謝

+0

你有什麼想法的LINQ。如果是的話,你可以在LINQ中輕鬆完成。 –

+0

是的,我對LINQ有一個公平的想法。你能指導我如何? – Nirman

+0

查看下面的@Dennis Traub的答案。那是我在說的! –

回答

0

我設計了一個解決方案自己,並張貼在我的博客。 請找到答案here

0

不是很有效,因爲它加載整個表,但你可以用這個啓動,並根據需要優化。

int index = yourContext.Customers 
         .OrderBy(x => x.CustomerName) 
         .ToList(); 
         .FindIndex(x => x.PostCode == "WS01 3GE"); 
0

嘗試這種新的解決方案,

var Customers = yourContext.Customers.OrderBy(x => x.CustomerName); 
int counter=0; 
foreach (Customer customer in Customers) 
{  
    if(customer.PostCode == "WS01 3GE") 
    break; 
    counter++; 
} //index will be in counter variable 

我還沒有試過,但應該工作

+0

不,這給了我錯誤說「System.NotSupportedException」 – Nirman

+0

好吧,我沒有嘗試在我的m/c上,但現在我意識到'TakeWhile'在LINQ to Entities查詢中不受支持。按照MSDN,http://msdn.microsoft.com/en-us/library/bb738550.aspx –

+0

是的,任何其他替代...或將我需要通過:( – Nirman