我正在尝试创建一些工作流和 Web 部件,以便在网站集中使用开箱即用的博客模板。我对一个普通的博客站点使用 SPMetal 来生成 LINQ 类和上下文,在编码时我注意到类别列表没有生成类。我认为这没关系...由于 SharePoint 中的所有内容都是列表,因此我可以将列表指定为通用项目列表(列表设置中仅列出了标题、ModifiedBy 等)。当我尝试查询列表说该列表不是项目的内容类型时,此错误会出现。
所以……真可惜。我认为 SPMetal 的默认参数可能有问题。我创建了一个配置文件以与 SPMetal 一起运行...
<?xml version="1.0" encoding="utf-8"?>
<Web AccessModifier="Internal" xmlns="http://schemas.microsoft.com/SharePoint2009/spmetal">
<List Name="Categories">
<ContentType Name="Item" Class="Categories" />
</List>
</Web>
这给了我一个命令行错误,说“错误:不能包含列表类别,因为它不包含从项目内容类型派生的内容类型。现在我有点想知道是什么地狱正在发生在这里...我检查了博客站点模板中类别列表的 Schema.xml 并将其与帖子列表 Schema.xml 进行了比较...帖子有:
<ContentTypes>
<ContentTypeRef ID="0x0110" />
</ContentTypes>
并且类别中甚至根本没有 ContentTypes 节点。所以我有点想只修改类别的架构并将该节点放在那里,指定 ID="0x01" 来强制它。否则,如果其他人遇到此问题,我愿意接受建议。
谢谢!