Tengo una colección de números ID para los cuales deseo devolver algún objeto, lo hago usando una instrucción linq con un donde eso es usando una instrucción contiene:Linq Donde contiene ... Mantener el orden por defecto
var recentCats = (from i in EntityCache.Default.GetAll<Categories>()
where WebProfile.Current.RecentlyCreatedCategories.Contains(i.Id)
&& BoundCategory.ParentItemClass.Id.Equals(i.ParentItemClass.Id)
select new CategoryInfo()
{
Category = i,
ClassId = i.ParentItemClass.Id,
ClassImage = NamedResourceManager.GetResourceBinary(i.ParentItemClass.NameResourceId)
});
Esto funciona perfectamente bien, excepto que quiero mantener el orden de los elementos en la colección devuelta lo mismo que estaban en la lista que entra. Entonces, por ejemplo, si tuviera una lista de ID: 14, 603, 388, quiero que los objetos que vuelven estén en el mismo orden, no el orden en que los devuelve el caché. ¿Hay alguna forma en el marco de la entidad para hacer esto, o cualquier forma de hacerlo que no implique que escriba un ciclo foreach?
Gracias
Lo siento, no tengo tiempo para una respuesta completa, pero puedo darle una pista. Implica unir su lista de ID en la lista de categorías en lugar de utilizar 'where ... contains' – Ray
Creo que el problema aquí es que no hay un pedido para SQL, a menos que lo ordene explícitamente. SQL puede devolver en cualquier orden, por lo que no hay un orden predeterminado para mantener. – Euphoric