Есть ли более легкий способ использовать дополнительные методы в Powershell v2

Это зависит от вашего запроса.

INSERT ...
    SELECT ... WHERE ...  -- this could lead to zero rows being inserted

DELETE ...
    WHERE NOT EXISTS ( SELECT ... )  -- this could lead to zero rows being deleted

UPDATE t1 JOIN t2 ...  -- the JOIN may cause no rows to be updated

Примечание:

(Select a.* from table as a order by a.index desc limit 1) as b
    where b.ColumnA = 1)) > 0 )

можно упростить (и ускорить) до

( ( SELECT ColumnA FROM table ORDER BY index DESC LIMIT 1 ) = 1 )

Обратите внимание, что это «истинное / ложное« выражение », поэтому оно может использоваться в разных местах.

6
задан AnthonyWJones 10 January 2009 в 21:26
поделиться

1 ответ

Это не становится легче в V2, но существует механизм расширения, о котором Вы не могли бы знать.

Я полагаю, что часть проблемы находится в обработке PowerShell (или отсутствие этого) дженериков.

Кроме того, чтобы дополнительные методы были применены, введенные наборы должны будут быть осуществлены, который является трудным в PowerShell. PowerShell, как динамический язык, поддержки, создающие наборы различных типов и большинство наборов, представлены как массивы Объекта. Дополнительные методы требуют, чтобы параметры были выведены из типа набора и затем предиката, проверенного, чтобы иметь корректный тип.

Если Ваше беспокойство для некоторого LINQ как функции, существует много cmdlets, которые обеспечивают ту же функциональность в работе с объектными наборами.

Расширенная система типов PowerShell позволяет Вам добавлять методы к различным типам путем добавления XML-файла, или изменяя существующий (создающий новый рекомендуемый путь). Jeffrey Snover демонстрирует выполнение этого с добавлением ScriptProperty к Классу объекта в этом сообщении в блоге.

Это - не совсем то же, но это могло сделать задание.

3
ответ дан 17 December 2019 в 18:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: