2010-10-20 16 views
5

Varlık çerçevesi tarafından döndürülen bir nesnenin iç koleksiyonunu nasıl sıralarım?Öğe çerçevesi tarafından döndürülen iç liste nasıl sıralanır?

public class X 
{ 
    public string Field {get; set;} 
    public EntityCollection<Y> Ys {get; set;} 
} 

public class Y 
{ 
    public string Field {get; set;} 
} 

from x in entities.Xs 
orderby x.Field 
select x 

X nesneleri geri ve Y'nin nesneleri kriteri için bu LINQ sorgu değiştirmek için bir yol var mı? Ya da geri döndüğünde Y listesini el ile sıralamalı mıyım?

DÜZENLEME: Bu kod X bir koleksiyon nesneleri Yazılan dönmelidir

, anonim yazarak şimdiki projenin gereksinimlerini karşılamıyor.

cevap

3
var sortedList = from x in entities.Xs 
       orderby x.Field 
       select new { 
        Field = x.Field, 
        y = (select y in x.Ys 
         orderby y.Field 
         select y) 
       }; 

Düzenlendi: anonim türleri daha sonra bunu istemiyorsanız:

var sortedList = from x in entities.Xs 
       orderby x.Field 
       select new X { 
        Field = x.Field, 
        y = (select y in x.Ys 
         orderby y.Field 
         select y) 
       }; 
+0

Bu konuda düşündüm, ama sonra ben X'in tiplerinin yerine etrafında anonim türleri teslim edilecektir. Bu bir hizmet katmanında yaşanır, bu yüzden X olarak kalması gereken türden birine ihtiyacım var. –

+0

@Jerod: Yani 'yerine yeni X 'seçin: http://stackoverflow.com/questions/2450536/simple-way-to-return -anonymous-types-to-make-mvc-kullanarak-linq-mümkün/2717690 # 2717690 –

+0

@Jerod Danny yorum yorum benim düzenleme ... ama yine de, benim düzenlenmiş cevabım var –

İlgili konular