Get Field names from a list
Today I tried to load the Fields from a list using PnP PowerShell and CSOM.
$ctx = Get-PnPContext $list = Get-PnPList -Web $web -Identity $listName $ctx.Load($list.Fields) $ctx.ExecuteQuery()
This quite quickly resulted in :
Exception calling “Load” with “1” argument(s): “The object is used in the context different from the one associated with the object.”
At line:1 char:1
+ $web.Context.Load($list.Fields)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : InvalidOperationException
Ok, maybe I need to use my $web.Context
$list = Get-PnPList -Web $web -Identity $listName $web.Context.Load($list.Fields) $web.Context.ExecuteQuery()
No, the same error still occurs.
Hmm, so the $list object has its own web (ParentWeb) object
$list = Get-PnPList -Web $web -Identity $listName $list.ParentWeb.Context.Load($list.Fields) $list.ParentWeb.Context.ExecuteQuery() and now I can get to my $list.Fields.
See Also
The object is used in the context different from the one associated with the object.
Thank you sir!
I can use the same technique here for a file I have just restored from the RecycleBin
$f = Get-PnPFolderItem -FolderSiteRelativeUrl “Documents/GDPR/test” -ItemName DeleteMe1.docx
$f.Context.Load($f.ListItemAllFields)
$f.Context.ExecuteQuery()
$f.ListItemAllFields
Catch you next time I am at the London PowerPlatform meet