Я пишу поставщик PowerShell на C #. Провайдер предоставляет объекты домена приложений через интерфейс, похожий на диск. Например:
my:\Users\joe@blow.com
my:\Customers\Marty
Эти данные в конечном итоге поступают из базы данных.
Мне не удалось найти каких-либо подробных указаний о том, когда вам следует обращаться к базе данных за данными, а когда вы должны их кэшировать. Я обнаружил, что PowerShell много раз вызывает такие методы, как ItemExists и GetChildNames; часто повторно для одной и той же команды. Непрактично заходить в базу данных 5 или 6 раз только потому, что они, например, нажимают Tab для автозаполнения.
Но в то же время, как пользователь в командной строке, если я наберу Get- ChildItem
( dir
) и просмотрите список, затем сделайте что-нибудь вне PowerShell, чтобы я знал, что данные обновлены, взяв еще один список каталогов, следует ожидать увидеть любые изменения в базе данных.
I чувствую, что если бы я знал правильный термин для описания моей проблемы (на языке PowerShell), я мог бы найти ответ в Google или найти существующий повторяющийся вопрос, но я застрял.