Присвоение свойства EF-модели, чтобы объект знал, что оно == max - PullRequest
1 голос
/ 25 февраля 2011

У меня есть модель EF, из которой я выбираю подмножество данных для представления в ASP.NET.Когда я представляю этот вывод, я перебираю возвращаемые объекты.Я хотел бы знать, когда я представляю объект с самым высоким значением (чтобы отформатировать его по-разному).

ObjectTable
Category  Item Value
X         A    1.0
X         B    14.0
X         C    9.0
Y         D    18.0

Я могу вернуть элементы, которые хочу просмотреть:

var obj = from o in ObjectTable where Category=="X" select o;

Я хочу знать, что B имеет наивысшее значение.

Я очень гибко отношусь к тому, как это происходит, я просто не смог найти разумного решения.Должен ли я изменить оператор LINQ, чтобы добавить оператор LET, создающий переменную obj.IsMax, и если o.Value == o.Max сделать его ИСТИНА, а все другие объекты - ЛОЖЬ, если да, то как?Этот маршрут кажется дорогим?

Или я мог бы расширить модель EF частичным классом и каким-то образом рассчитать, равно ли значение модели максимальному значению возвращаемых объектов?

Или что-то совершенно другое?

1 Ответ

0 голосов
/ 25 февраля 2011
var obj  = (ObjectTable.Where(o => o.Category == "Y"));
var anonymousObjList = obj.Select(o => new {o, IsMax = (o.Value == obj.Max(x => x.Value))});

И цикл через анонимный ObjList

foreach(var obj in anonymousObjList)
{
    var actualObject = obj.o;
    var isMax = obj.IsMax;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...