这个问题不知道算不是微软sharepoint的bug,暂且说是一个bug吧.
该问题目前出现在列表为“文档库”类型, 普通列表未出现该问题;
新建一个文档库,DocLib , 新增一条测试数据;
测试:Description字段 ;提示不存在 去文档库添加一栏名为:Description
添加栏:Description, 奇怪的是 field=Description0 如果你不看这里,后面你就纠结吧.
这里你会发现一个很奇怪的问题;Description字段已经Update()成功,但是你不能item["Description"]来获取了. (难道只读?) ,用item.Fields.ContainsFieldWithStaticName("Description")来检测
是否含有这个字段, 结果为false, 但是对于自己新建的Description为什么又替换为了Description0呢? 表示很不解. 难道 Description和Description0雌雄同体?
那应该如何获取呢? 全部用Description0来获取, 早知道这样,我还不如写中文了, 编译过的字段总不会遇到这个问题吧. 哎.
其他: 之前用的reason作为字段, 出现这个问题,不抛错,反正就是获取不到值, 情况和上面一样,但是自己机子上测试这个字段没这个问题;Description存在这个问题.
新建栏的时候,注意这两个英语单词啊,最好舍弃不用他们, 系统保留? 这个问题排查的辛苦. 纠结的是用SPSiteDataQuery,如果你ViewFields = "<FieldRef Name=\"Description\" />而不是
ViewFields = "<FieldRef Name=\"Description0\" />是查询不到数据的. 有时候吧查询到了, 反正字段为空,但是你在列表查看他肯定不为空的. 感兴趣的大家可以测试下,不知道那些单词
还是地雷, 虽然Title为系统字段,但是我在新建一个Title时也为Title0, 但是他们两个是独立的字段.
切忌.