Tôi có tập hợp số ID mà tôi muốn trả về một số đối tượng, tôi đang sử dụng câu lệnh linq với câu lệnh chứa:Linq Nơi chứa ... Giữ thứ tự mặc định
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)
});
Điều này hoạt động hoàn toàn tốt, ngoại trừ việc tôi muốn giữ thứ tự các mục trong bộ sưu tập được trả về giống như trong danh sách đi vào. Ví dụ: nếu tôi có danh sách ID: 14, 603, 388, tôi muốn các đối tượng quay trở lại theo thứ tự như nhau, không phải thứ tự mà chúng được trả về bởi cache. Có cách nào trong khuôn khổ thực thể để làm điều này, hoặc bất kỳ cách nào để làm điều đó mà không liên quan đến tôi viết một vòng lặp foreach?
Cảm ơn
Xin lỗi, không có thời gian cho câu trả lời đầy đủ, nhưng tôi có thể gợi ý cho bạn. Nó liên quan đến việc tham gia danh sách ID của bạn vào danh sách danh mục thay vì sử dụng 'where ... contains' – Ray
Tôi nghĩ rằng vấn đề ở đây là, không có thứ tự cho SQL, trừ khi bạn đặt hàng một cách rõ ràng. SQL có thể trả về theo thứ tự bất kỳ, vì vậy không có thứ tự mặc định để giữ. – Euphoric