【发布时间】:2012-02-17 18:35:08
【问题描述】:
在 SharePoint 2003 和 2007 中,有一个名为 AllLists 的表,其中有一个名为 tp_Fields 的列,其中包含一个 xml,其中包含特定列表的所有字段。
存储在 tp_Fields 列中的 xml 示例将是具有 3 个字段的 SharePoint 列表:
<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?
我希望这个问题很清楚(对它的可能性希望不大)。
谢谢,
【问题讨论】:
-
这是使用服务器对象模型、Web 服务还是什么?
-
现有系统正在使用我说的数据库表。
-
这是批处理作业吗? Web 部件?代码是否在服务器上运行?你能在你的代码中使用服务器对象模型吗(即使它只是为了这个部分)?这甚至是 .NET 代码,还是完全使用其他范例?如果有,是什么?
-
我在问题中添加了更多注释。 C# 代码从数据库结构中读取,以便稍后从中生成一些视图(我不能为此使用 Web 服务或对象模型,因为生成的视图也将使用底层共享点表......)。跨度>
-
我并没有说重写整个应用程序以使用服务器对象模型(尽管我确实认为您通过依赖内部底层实现将自己挖进了这个坑)。我说使用服务器对象模型来获取列表的字段,然后继续做你正在做的任何其他事情,直到代码也被破坏。
标签: xml sharepoint sharepoint-2010 field sharepoint-list