Ich stecke fest, versuchen, meine Ergebnisse zwischen einem Datumsbereich zu begrenzen. Ich verbinde mich über CSOM mit SharePoint. Die SharePoint-Version, die ich denke, ist SharePoint Online (wir haben Office 365 bei der Arbeit).Feldwert für Linq-Abfrage erhalten - SharePoint
Grundsätzlich möchte ich die Daten für die Abfrage unten beschränken. Ich möchte die Start_Date < = Heute und die End_Date> = Heute. Mehr als das verstehe ich nicht ganz, wie man den Wert eines Feldes mit linq zurückgibt.
Ich habe diese:
.Where(x => x.Id <= 50)
, die richtig funktioniert. Das war einfach, da ich die Eigenschaft Id
mit Intellisense finden konnte, aber ich kann nicht herausfinden, wie ich die Felder herausziehen kann, an denen ich interessiert bin und wie man linq verwendet, um meine Ergebnisse mit einem zusätzlichen Where einzuschränken.
Im Moment bekomme ich folgende Fehler versucht, meinen Code auszuführen wie:
The 'ToDateTime' member cannot be used in the expression.
Relevante Code:
private ListItemCollection GetSharePointList(string XML, string tableName, ClientContext context, byte limit = 50)
{
List testTable = context.Web.Lists.GetByTitle(tableName);
CamlQuery camlQuery = new CamlQuery
{
ViewXml = XML //The Passed in XML is: "<view></view>"
};
ListItemCollection GetSharePointList = testTable.GetItems(camlQuery);
DateTime today = DateTime.Today;
context.Load(GetSharePointList,
items => items.Take(limit).Include(
item => item.Id,
item => item["DayOfMonth"],
item => item["Start_Date"],
item => item["End_Date"],
item => item["Task_FrequencyID_x003a_Frequency"],
item => item["TaskID_x003a_TaskName"],
item => item["TaskID_x003a_TaskAlias"],
item => item["TaskID_x003a_TaskDueTime"],
item => item["Daily_Frequency_x003a_DayofWeek"],
item => item["Weekly_Frequency_x003a_Week"],
item => item["End_Date"],
item => item["Monthly_Frequency"])
.Where(x => x.Id <= 50)
.Where(y => Convert.ToDateTime(y.FieldValues["Start_Date"]) <= today));
context.ExecuteQuery();
return GetSharePointList;
}
Sollte so etwas wie .Select (x => x.Field ("start_date")) –
jdweng
sein @ jdweng Danke. Ich bekomme "ListItem enthält keine Definition für 'Field' ..." irgendwelche Ideen? –
Das Feld ist ein Objekt, das ein Tippfehler sein kann. Ohne den Typ zu kennen, kann ich keine Antwort geben. Das Element ist möglicherweise bereits eine DateTime, sodass keine Konvertierung erforderlich ist. – jdweng