2009-07-15 17 views

cevap

12

Sonuçlar içine

from c in customers 
      where c.Region == "somewhere" 
      orderby c.CustomerName 
      select new {c.CustomerID, c.CustomerName} 
      .Skip(9).Take(1); 
+0

Teşekkürler, Scott. Yani sanırım ToList() ve sonra IndexOf()? –

+0

, ayrıca bir indeks veren Select'in aşırı yüklenmesiyle nasıl yapabileceğinize dair bir örnek ekledim. –

+0

Sweet. Yaklaşmamı alır. –

3

Bunu yapmak için Atla ve Atla uzantı yöntemlerini kullanabilmelisiniz. Linq sorgu şeyin farkındayım bunun için doğrudan hiçbir yolu yoktur
How To Project a Line Number Into Linq Query Results

+3

Bunun bir cevabı olduğunu düşünmüyorum. sorulmakta olan soru, ama bu not düştü, ben de buradan ayrılıyorum. –

1

Nasıl Hat Numarasını Proje için: 10. satırının istiyorsanız Örneğin

, arasında. Tüm sorguyu istemciye indirmeniz gerekiyor ve oradan satır numaralarını yansıtabiliyorsunuz. Alternatif olarak, ROW_NUMBER kullanan bir saklı yordam yazabilir ve ardından bu progı Linq'ten SQL'e gönderebilirsiniz. Sizin durumunuzda, bunu yapabilmenin tek yolu, müşteri tarafı olacaktır. Aşağıdaki ifadenin sunucuda bunu yapamayacağını unutmayın, ancak tüm tablonuzu aşağı çekecek ve dizini istemciden alacaksınız ...

using (var dc = new DataClasses1DataContext()) 
{ 
    var result = dc.Users 
     .AsEnumerable()  // select all users from the database and bring them back to the client 
     .Select((user, index) => new // project in the index 
     { 
      user.Username, 
      index 
     }) 
     .Where(user => user.Username == "sivey"); // filter for your specific record 

    foreach (var item in result) 
    { 
     Console.WriteLine(string.Format("{0}:{1}", item.index, item.Username)); 
    } 
} 
+3

, Linq'den SQL'e Select'in aşırı yüklenmesinin desteklenmediğini. NotSupportedException() atar. –

İlgili konular