1

我有一个包含 8 个整数值的记录的表:

TableChild:
    Parent    Name    int1    int2    int3    int4    int5    int6    int7    int8
    a         w       1       3       2       0       1       3       4       3
    a         x       4       5       2       5       3       2       4       6
    b         y       5       3       5       3       1       1       3       4
    b         z       4       1       2       4       2       2       4       2

例如,我需要找到“x”的最大值。例如,我还(单独)需要在整个表中为父“a”获取最高值。

var query = from row in TableChild
            where row.Name == x
            select new 
            {
                Parent = row.Parent,
                Name = row.Name,
                status = GetHighestValueOfRowInTableChild, 
                ...           
            };

返回 { (a,x,6) }

var queryParent = from row in tableParent     
                  where row.Name == a
                  select new 
                  {
                      Parent = row.Name,
                      status = GetHighestValueOfAllChildItemsInTableChild,
                      ...
                  };

返回 { (a,6) }

我玩过 .Max() 并尝试使用表达式,但没有任何运气,因为我可能应该使用多个连接,但无法弄清楚它们应该如何交互。

4

2 回答 2

3

使用 int{X} 属性的值创建一个数组,稍后获取数组的最大值

var queryParent = from row in tableParent     
                      where row.Name == a
                      select new 
                      {

                         Parent = row.Name,
                         status = 
                         (new int[]{row.int1,row.int2,row.int3,row.int4,
                         row.int5,row.int6,row.int7,row.int8}).Max();
                          ...

                      };
于 2012-09-10T12:48:32.190 回答
2

除非您要获取大量记录并且需要减小 DB 响应的大小,否则最好只获取所有列并Max在客户端执行。

于 2012-09-10T12:45:58.087 回答