Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Linq到实体,比较不同字段/列中的int值并返回最大值_C#_Linq To Entities - Fatal编程技术网

C# Linq到实体,比较不同字段/列中的int值并返回最大值

C# Linq到实体,比较不同字段/列中的int值并返回最大值,c#,linq-to-entities,C#,Linq To Entities,我有一个表,其中的记录有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

我有一个表,其中的记录有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)}

返回{(a,6)}


我已经使用了.Max()并尝试使用表达式,但运气不好,因为我可能应该使用多个联接,但无法确定它们应该如何交互。

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

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

使用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();
                          ...

                      };

使用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();
                          ...

                      };

我认为“最好”应该改写为“最简单”。我认为只要性能足够好,最简单的解决方案通常是最好的。如果我要获取大量记录,你会有什么建议目前我的是少量记录,但我想其他人可能想知道?如果是这样,我会在数据库端编写一个存储过程。我怀疑在LINQ中是否有一种既简单又高效的方法可以做到这一点。我认为“最好”应该改写为“最简单”。我认为只要性能足够好,最简单的解决方案通常是最好的。如果我要获取大量记录,你会有什么建议目前我的是少量记录,但我想其他人可能想知道?如果是这样,我会在数据库端编写一个存储过程。我怀疑在LINQ中是否有一种既简单又高效的方法可以做到这一点。这正是我一直在使用的方法——我只是无法正确地使用它。谢谢我想会有一些“奇特”的方法。但这似乎很有效。这正是我一直在玩弄的方法——我就是做不好。谢谢我想会有一些“奇特”的方法。但这似乎很有效。我正是出于这个原因想对这些表格进行标准化,但设计师希望采用这种方式-但是的,我同意我正是出于这个原因想对这些表格进行标准化,但设计师希望采用这种方式-但是的,我同意