2013-07-30 29 views
0

的,我试图找出如何获得SQL语句:sqlfunctions.checksum LINQ对象

select checksum_agg(checksum(*)) from Foo

从LINQ工作。我可以得到一个列的校验和,只要我知道的列名:

SqlFunctions.ChecksumAggregate(Foo.Select(x => x.Id));

但我想要么能够校验集合或至少校验和列分别不知道姓名(或名称)。

回答

0

查询SqlFunctions.ChecksumAggregate需要的是计算校验和的值的集合。空值被忽略。

例如,SqlFunctions.ChecksumAggregate(Foo.Select(x => x.Id));将计算表foo的每一行,为所有非空列,计算校验和超过Id字段。

所以校验和将利用非空列的所有信息。

+0

我不认为这是正确的。参数是'IEnumerable >',select语句的结果是获取校验和的结果。它不计算Foo中所有列的校验和,它获取select语句中返回的id的枚举值的校验和。 – loctrice