将属性分配给EF模型,以便对象知道它是== max

时间:2011-02-25 01:37:43

标签: c# entity-framework asp.net-mvc-2 linq-to-entities

我有一个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语句以添加创建obj.IsMax变量的LET语句,如果o.Value == o.Max使其为TRUE,所有其他对象为FALSE,如果是,如何?这条路线好像很贵?

或者我可以用部分类扩展EF模型并以某种方式计算模型值是否等于返回对象的最大值?

还是完全不同的东西?

1 个答案:

答案 0 :(得分:0)

var obj  = (ObjectTable.Where(o => o.Category == "Y"));
var anonymousObjList = obj.Select(o => new {o, IsMax = (o.Value == obj.Max(x => x.Value))});

通过anonymousObjList循环

foreach(var obj in anonymousObjList)
{
    var actualObject = obj.o;
    var isMax = obj.IsMax;
}