2013-07-30 3 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 поля.

Таким образом, контрольная сумма будет использовать всю информацию о столбцах, отличных от Null.

+0

Я не думаю, что это правильно. Аргументом является «IEnumerable >», и результатом оператора select является получение контрольной суммы. Он не вычисляет контрольную сумму для всех столбцов в Foo, он получает контрольную сумму для перечислимого идентификатора, возвращаемого в инструкции select. – loctrice

Смежные вопросы