2012-05-24 13 views
15

Alguna idea de por qué el LINQ OrdenarPor no está funcionando en el siguiente código, (tener errores pero el método no ordena ...)LINQ OrderBy no ordenando ... sin cambiar nada ... ¿por qué?

Primero mi propio tipo

public class IQLinksView 
    { 
     public int id { get; set; } 
     public int catid { get; set; } 
     public int? viewed {get;set;} 
     public string name {get;set;} 
     public string desc {get;set;} 
     public string url {get;set;} 
     public string pic {get;set;} 
     public string cat {get;set;} 
    } 

continuación, consulta:

IQueryable<IQLinksView> newView = 
       from links in this.emContext.tbl_otherlinks 
       select new IQLinksView { id = links.pklinkid, catid = 
       links.tbl_catgeory.pkcategoryid, viewed = links.linkviewed, name = links.linkname, 
       desc = links.linkdesc, pic = links.linkpicture, url = links.linkurl, cat = 
       links.tbl_catgeory.categoryname }; 

Untill aquí todo bien :-), pero luego

newView.OrderBy(x => x.viewed); 

solo no cambia nada, ... La página está cargando resultados mostrando ... pero hay orden ... sniff

tengo Pruebe con (la creación de un objeto comparador ...):

newView.OrderBy(x => (Int32)x.viewed, new CompareIntegers()); 

mismo resultado, sin pedidos ...

tengo soluciones, pero sólo me preguntaba lo que falta ....

Cualquier sugerencia se apreciará muchas gracias :-)

Respuesta

29

no se deshaga de la retu valor de rn El método de extensión OrderBy es no mute la entrada. Proveedores:

newView = newView.OrderBy(x => x.viewed); 

No hay ninguna razón por la que no va a funcionar, asumiendo el valor viewed es correcta. Además, asegúrese de que OrderBy esté después de cualquier operación (por ejemplo, Distinct) que arruinará el pedido.

Happy coding!

+0

¡Super! Funciona bien, no pensó en el regreso, supuso la mutación – user1415838

+0

Muchas gracias, amo este trabajo ;-) – user1415838

+0

Aaargh esto fue exactamente mi estúpido problema simple. Gracias. – Hannele

Cuestiones relacionadas