.NET Framework 3.5 EntityCollection Порядок по вопросу - PullRequest
1 голос
/ 06 ноября 2010

Я использую .NET Framework 3.5 с ASP.NET MVC и использую Linq To Entity для своих объектов данных.

У меня есть объект Promo, который имеет отношение 1 ко многим к Locationobject.

Я хочу взять коллекцию Locations из объекта Promotion и отсортировать их, не помещая в другую переменную.Что-то вроде ...

promotionEntity.Locations.OrderBy(l => l.Distance);

Но это никак не влияет на коллекции * .Locations.Есть ли способ, которым я могу отсортировать EntityCollection так, как мне нужно, не помещая его в другой список или переменную?

Ответы [ 2 ]

1 голос
/ 07 ноября 2010

Если тип местоположения - IEnumerable, вы можете просто присвоить результат OrderBy:

promotionEntity.Locations = promotionEntity.Locations.OrderBy(l => l.Distance)

Если тип что-то вроде List<Location>, то вам, вероятно, придется создатьновый список:

promotionEntity.Locations = new List<Location>(promotionEntity.Locations.OrderBy(l => l.Distance));

0 голосов
/ 07 ноября 2010

Один из способов - использовать EntityCollection.CreateSourceQuery Method :

var promotionEntity = context.Promotions.First();
var sq = product.Locations.CreateSourceQuery().OrderBy(l => l.Distance);
promotionEntity.Locations.Attach(sq);

Или, если вас не интересует тип результирующего объекта, можно выполнить проекцию внутри анонимного типа:

var promotionEntity = context.Promotions.Select(p => new 
{
    p,
    Locations = p.Locations.OrderBy(l => l.Distance)
}).First();
...