Create custom List LINQ Expression
-
08-12-2020 - |
Question
I have a list on SharePoint, where I am trying to load fields for this list like following:
var lists = context.Web.Lists;
context.Load(lists, n => n.Include(x => x.Title,
x => x.Fields.Include(
z => z.Title,
z => z.InternalName,
z => z.TypeDisplayName)));
context.ExecuteQuery();
The following part of the code I use quite often in my code, while working with other lists:
x => x.Fields.Include(
z => z.Title,
z => z.InternalName,
z => z.TypeDisplayName)
I would like to know if there is a way how to simplify inserting this .Include
statement in my code (so that in case I will have to add more properties in the future, I dont have to rewrite all my code everywhere but only in one place).
I have tried to create custom LINQ Extension, but it failed as it is probably expecting sort of a Expression<Func<T,Y>>
(I guess).
Any help regarding this matter would be more than appreciated!
La solution
This is the result I was looking for:
private static readonly Expression<Func<Field, Object>>[] LoadFieldProperties = { term => term.InternalName,
term => term.Title,
term => term.TypeDisplayName};
and then call it like following:
var lists = context.Web.Lists;
context.Load(lists, n => n.Include(x => x.Title,
x => x.Fields.Include(LoadFieldProperties)));
Licencié sous: CC-BY-SA avec attribution
Non affilié à sharepoint.stackexchange