Microsoft.SharePoint.Client 在线字段类型映射
Microsoft.SharePoint.Client Online FieldType Mapping
我正在尝试将值推送到 SharePoint Online 列表中。
几个问题:
- 如果我使用 SharePoint 在线结构创建此代码,它是否也适用于拥有自己的本地服务器的公司?还是我必须创建一个全新的代码库来支持它?似乎
SPFieldType
和 FieldType
之间存在一些很大的差异,或者代码是否自动进行了更改?
- 在映射
FieldType
中,我正在寻找一些参考或代码来解释各种字段类型的正确映射。我看过姐妹产品 SharePoint 2013 的这些,例如:
但是2013年的SPFieldType
和Microsoft.SharePoint.Client.FieldType
之间的差异似乎比较大。是否有相应的内容描述每个字段类型需要什么才能使值在 FieldType
中成功?
这是我现有代码的示例,以及我仍然缺少的代码:
public string ToString(Microsoft.SharePoint.Client.FieldType ColumnType)
{
switch (ColumnType)
{
case Microsoft.SharePoint.Client.FieldType.Boolean:
// 0 or 1, or "true" or "false"???
break;
case Microsoft.SharePoint.Client.FieldType.Calculated:
// No idea!
break;
case Microsoft.SharePoint.Client.FieldType.Choice:
// No idea!
break;
case Microsoft.SharePoint.Client.FieldType.Computed:
// No idea!
break;
case Microsoft.SharePoint.Client.FieldType.Currency:
// No idea!
break;
case Microsoft.SharePoint.Client.FieldType.DateTime:
return GetDateTimeValue().ToString("yyyy-MM-dd");
case Microsoft.SharePoint.Client.FieldType.File:
// No idea!
break;
case Microsoft.SharePoint.Client.FieldType.GridChoice:
// No idea!
break;
case Microsoft.SharePoint.Client.FieldType.Guid:
// No idea!
break;
case Microsoft.SharePoint.Client.FieldType.Integer:
return GetIntValue().ToString();
case Microsoft.SharePoint.Client.FieldType.Lookup:
// No idea!
break;
case Microsoft.SharePoint.Client.FieldType.MultiChoice:
// No idea!
break;
case Microsoft.SharePoint.Client.FieldType.Note:
return GetStringValue();
case Microsoft.SharePoint.Client.FieldType.Number:
return GetDoubleValue().ToString();
case Microsoft.SharePoint.Client.FieldType.Text:
return GetStringValue();
case Microsoft.SharePoint.Client.FieldType.User:
// No idea!
break;
case Microsoft.SharePoint.Client.FieldType.URL:
// No idea!
break;
// No Idea what to do for these
case Microsoft.SharePoint.Client.FieldType.WorkflowEventType:
case Microsoft.SharePoint.Client.FieldType.WorkflowStatus:
case Microsoft.SharePoint.Client.FieldType.AllDayEvent:
case Microsoft.SharePoint.Client.FieldType.Attachments:
case Microsoft.SharePoint.Client.FieldType.ThreadIndex:
case Microsoft.SharePoint.Client.FieldType.Threading:
case Microsoft.SharePoint.Client.FieldType.PageSeparator:
case Microsoft.SharePoint.Client.FieldType.Recurrence:
case Microsoft.SharePoint.Client.FieldType.Invalid:
case Microsoft.SharePoint.Client.FieldType.ContentTypeId:
case Microsoft.SharePoint.Client.FieldType.Counter:
case Microsoft.SharePoint.Client.FieldType.CrossProjectLink:
case Microsoft.SharePoint.Client.FieldType.MaxItems:
case Microsoft.SharePoint.Client.FieldType.ModStat:
case Microsoft.SharePoint.Client.FieldType.Error:
break;
default:
return GetStringValue();
}
return GetStringValue();
}
缺少的方法只是将我的数据中的值转换为适当的字符串。
服务器对象模型和 .NET 客户端对象模型不同。
如果您想将值推送到 SharePoint Online 列表中,我建议您使用 Pnp-PowerShell 来实现它。
关于字段类型,请查看GetField中的代码。
如果您不想使用Pnp-PowerShell,您需要将服务器对象模型代码转换为客户端对象模型代码。
我正在尝试将值推送到 SharePoint Online 列表中。 几个问题:
- 如果我使用 SharePoint 在线结构创建此代码,它是否也适用于拥有自己的本地服务器的公司?还是我必须创建一个全新的代码库来支持它?似乎
SPFieldType
和FieldType
之间存在一些很大的差异,或者代码是否自动进行了更改? - 在映射
FieldType
中,我正在寻找一些参考或代码来解释各种字段类型的正确映射。我看过姐妹产品 SharePoint 2013 的这些,例如:
但是2013年的SPFieldType
和Microsoft.SharePoint.Client.FieldType
之间的差异似乎比较大。是否有相应的内容描述每个字段类型需要什么才能使值在 FieldType
中成功?
这是我现有代码的示例,以及我仍然缺少的代码:
public string ToString(Microsoft.SharePoint.Client.FieldType ColumnType)
{
switch (ColumnType)
{
case Microsoft.SharePoint.Client.FieldType.Boolean:
// 0 or 1, or "true" or "false"???
break;
case Microsoft.SharePoint.Client.FieldType.Calculated:
// No idea!
break;
case Microsoft.SharePoint.Client.FieldType.Choice:
// No idea!
break;
case Microsoft.SharePoint.Client.FieldType.Computed:
// No idea!
break;
case Microsoft.SharePoint.Client.FieldType.Currency:
// No idea!
break;
case Microsoft.SharePoint.Client.FieldType.DateTime:
return GetDateTimeValue().ToString("yyyy-MM-dd");
case Microsoft.SharePoint.Client.FieldType.File:
// No idea!
break;
case Microsoft.SharePoint.Client.FieldType.GridChoice:
// No idea!
break;
case Microsoft.SharePoint.Client.FieldType.Guid:
// No idea!
break;
case Microsoft.SharePoint.Client.FieldType.Integer:
return GetIntValue().ToString();
case Microsoft.SharePoint.Client.FieldType.Lookup:
// No idea!
break;
case Microsoft.SharePoint.Client.FieldType.MultiChoice:
// No idea!
break;
case Microsoft.SharePoint.Client.FieldType.Note:
return GetStringValue();
case Microsoft.SharePoint.Client.FieldType.Number:
return GetDoubleValue().ToString();
case Microsoft.SharePoint.Client.FieldType.Text:
return GetStringValue();
case Microsoft.SharePoint.Client.FieldType.User:
// No idea!
break;
case Microsoft.SharePoint.Client.FieldType.URL:
// No idea!
break;
// No Idea what to do for these
case Microsoft.SharePoint.Client.FieldType.WorkflowEventType:
case Microsoft.SharePoint.Client.FieldType.WorkflowStatus:
case Microsoft.SharePoint.Client.FieldType.AllDayEvent:
case Microsoft.SharePoint.Client.FieldType.Attachments:
case Microsoft.SharePoint.Client.FieldType.ThreadIndex:
case Microsoft.SharePoint.Client.FieldType.Threading:
case Microsoft.SharePoint.Client.FieldType.PageSeparator:
case Microsoft.SharePoint.Client.FieldType.Recurrence:
case Microsoft.SharePoint.Client.FieldType.Invalid:
case Microsoft.SharePoint.Client.FieldType.ContentTypeId:
case Microsoft.SharePoint.Client.FieldType.Counter:
case Microsoft.SharePoint.Client.FieldType.CrossProjectLink:
case Microsoft.SharePoint.Client.FieldType.MaxItems:
case Microsoft.SharePoint.Client.FieldType.ModStat:
case Microsoft.SharePoint.Client.FieldType.Error:
break;
default:
return GetStringValue();
}
return GetStringValue();
}
缺少的方法只是将我的数据中的值转换为适当的字符串。
服务器对象模型和 .NET 客户端对象模型不同。 如果您想将值推送到 SharePoint Online 列表中,我建议您使用 Pnp-PowerShell 来实现它。
关于字段类型,请查看GetField中的代码。
如果您不想使用Pnp-PowerShell,您需要将服务器对象模型代码转换为客户端对象模型代码。