不在数据库中存储信息的 Orchard 内容部分

Orchard Content Parts that Don't Store Information in the Database

我正在尝试在 Orchard 中创建一个内容部分,它将执行对 Web 服务器的请求并显示请求的结果。我 运行 遇到的问题是我的零件不需要用户输入,因此我将零件和零件记录 类 留空。我有一个 Migrations.cs 文件,它向部件添加了描述并使其可附加,并创建了一个附加了部件的内容项。当我去创建我的内容类型的新实例时,它尝试写入数据库但失败了。如何在 orchard 中创建不尝试保存到数据库的内容部分?谢谢。

我收到的实际错误是: Orchard.ContentManagement.Records.ContentTypeRecord

中的空 ID

我的问题的答案是,即使您的部分实际上没有在数据库中保存任何内容,您仍然需要为该部分包含一个 table 以便它可以存储 ID。我刚刚将以下内容添加到我的 Migrations.cs 文件中并解决了问题。

SchemaBuilder.CreateTable("MyCustomPartRecord",
    table => table
        .ContentPartRecord()
);

我很确定您不需要创建新的 table,因为有很多部分在 Orchard 中没有。尝试删除 MyCustomPartRecord.cs 并更改 MyCustomPart.cs

public class MyCustomPart : ContentPart<MyCustomPartRecord>

public class MyCustomPart : ContentPart

然后只需添加驱动程序和视图,无需额外的 tables 就可以了...理论上 :D