Microsoft.SharePoint.Client联机字段类型映射

Microsoft.SharePoint.Client联机字段类型映射,sharepoint,mapping,fieldtype,Sharepoint,Mapping,Fieldtype,我正在尝试将值推送到SharePoint Online列表中。 有几个问题: 如果我使用SharePoint online结构创建此代码,这是否也适用于拥有自己内部部署服务器的公司?或者我必须创建一个全新的代码库来支持它吗?似乎SPFieldType和FieldType之间存在很大的差异,或者代码是否自动进行了更改 在映射FieldType中,我正在寻找一些参考或代码来解释各种字段类型的正确映射。我在姐妹产品SharePoint 2013中看到了这些,例如: 但是2013SPFieldType

我正在尝试将值推送到SharePoint Online列表中。 有几个问题:

  • 如果我使用SharePoint online结构创建此代码,这是否也适用于拥有自己内部部署服务器的公司?或者我必须创建一个全新的代码库来支持它吗?似乎
    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来实现

    关于字段类型,请检查中的代码


    如果不想使用Pnp PowerShell,则需要将服务器对象模型代码转换为客户端对象模型代码

    谢谢你的回复。我非常确定我使用的是客户机对象模型(也称为CSOM???),因为我不会在SharePoint服务器上部署代码,而且它正在工作。据我所知,Pnp PowerShell基于CSOM,因此这意味着它应该适用于在线和内部SharePoint?我们不能在SharePoint online中使用服务器端对象模型(SSOM)。我们可以在SharePoint Online和内部部署中使用客户端对象模型(CSOM)。谢谢