在 SharePoint 2003 和 2007 中,有一个名为 AllLists 的表,其中有一个名为 tp_Fields 的列,其中包含一个包含特定列表的所有字段的 xml。
对于具有 3 个字段的 SharePoint 列表,存储在 tp_Fields 列中的 xml 示例如下:
<FieldRef Name="ContentTypeId" />
<FieldRef Name="_ModerationComments" ColName="ntext1" />
<FieldRef Name="WebPartTypeName" ColName="nvarchar9" />
我们有一个使用 C# 代码从本专栏中读取的应用程序,例如
var tpFields = (String) drView["tp_Fields"];
在 SharePoint 2010 中,此列的数据类型已更改为varbinary并且仅包含一些二进制数据!
(我知道理想/推荐的解决方案是使用 SharePoint Web 服务或 SharePoint 对象模型,而不依赖于基础表,但不幸的是我们有一个现有的应用程序,我们还需要让它与 2010 一起使用。我希望我们不必重新设计一切!)
我如何知道 SharePoint 列表在 SharePoint 2010 中的数据库中有哪些字段?或者如果可能的话,如何像以前一样将此 varbinary 列转换为等效的 xml?
我希望这个问题很清楚(对它的可能性几乎没有希望)。
谢谢,