EmeraldArcher
EmeraldArcher

Reputation: 63

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

I'm trying to create a content part in Orchard that will perform a request to a web server and display the results of the request. The problem I'm running into is that my part requires no user input and thus I have left the part and part record classes empty. I have a Migrations.cs file that adds a description to the part and makes it attachable as well as creates a content item with the part attached to it. When I go to create a new instance of my content type it tries writing to the database and fails. How do you create a content part in orchard that doesn't try to save to the database? Thank you.

The actual error I receive is: null id in Orchard.ContentManagement.Records.ContentTypeRecord

Upvotes: 2

Views: 611

Answers (2)

Xeevis
Xeevis

Reputation: 4521

I'm pretty sure you don't need to create new table since there are many parts which don't have any in Orchard. Try to remove MyCustomPartRecord.cs and change MyCustomPart.cs

public class MyCustomPart : ContentPart<MyCustomPartRecord>

to

public class MyCustomPart : ContentPart

Then just add driver and view and you should be good without extra tables ... In theory :D

Upvotes: 4

EmeraldArcher
EmeraldArcher

Reputation: 63

The answer to my problem is even when your part ins't actually saving anything in the database you still need to include a table for the part so it can store the id. I just added the following to my Migrations.cs file and it fixed the problem.

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

Upvotes: 0

Related Questions