我们都知道Discussion List有两个Content Type,一个是Discussion Content Type;一个是Message Content Type;如下图所示:
那么这里需要注意的是DiscussionContent Type属于Folder类型,而MessageContent Type是Item类型,只所以跟大家强调和解释这个细节,是因为很多人都误以为Discussion Content Type也属于Item类型,所以在coding时多数都按照item的处理逻辑处理了,如果是这样的话,就会影响数据的转移或者覆盖。
SharePoint的Content和Container的冲突判断原则为:Item是以Item的ID作为冲突判断条件的,而Folder是以Name为冲突判断条件的,倘若开发人员不了解这个Discussion属于Folder类型的话,按照Item的处理逻辑走的话,就会导致数据的丢失或者覆盖。
我们来验证一下DiscussionContent Type为什么是Folder类型?
- 我们在SharePoint的Site里创建一个Discussion List,并创建一个Discussion以及Reply,如下图所示:
- 到SQL Server里的alldocs表里进行校验,可以看出所创建的Discussion的Type=1,即Folder级别,如下图所示:
- 微软官方网站对Data Store Type进行的诠释,所以Type=1验证是Folder类型。
希望广大开发人员在日后开发项目时,注意这个细节,谢谢大家!