Published on

Create content with code in Orchard Core - Part 3

Table of Contents


In this post we will see how to create content types using the code in Orchard Core. We will see how to create content types with different parts and fields. We will also see how to create content items using the code.

Create a CMS

dotnet new occms -n MyCms

Add a module to the cms with part

dotnet new ocmodulecms --name MyCms.Projects

Create a solution and add the projects

To create a solution

dotnet new sln -n ContentWithCode

To add projects to the solution.

dotnet sln add .\MyCms\MyCms.csproj
dotnet sln add .\MyCms.Projects\MyCms.Projects.csproj

To add Module as a reference to the project

dotnet add .\MyCms\MyCms.csproj reference .\MyCms.Projects\MyCms.Projects.csproj

Add migration

Create the migrations class Migrations.cs file in our module MyCms.Projects

using OrchardCore.ContentManagement.Metadata;
using OrchardCore.ContentManagement.Metadata.Settings;
using OrchardCore.Data.Migration;

namespace MyCms.Projects
    public class Migrations : DataMigration
        IContentDefinitionManager _contentDefinitionManager;

        public Migrations(IContentDefinitionManager contentDefinitionManager)
            _contentDefinitionManager = contentDefinitionManager;

        public int Create()
            _contentDefinitionManager.AlterTypeDefinition("Project", type => type

            _contentDefinitionManager.AlterPartDefinition("Project", part => part
                .WithField("Name", field => field
                .WithField("StartDate", field => field
                    .WithDisplayName("Start date")
                .WithField("Image", field => field
                    .WithDisplayName("Main image")
                .WithField("Cost", field => field

            return 1;

Update the start up file to add the migration.


Create a Headless Orchard CMS

Run the MyCms project.

dotnet run

You will see a Setup screen in the Recipe dropdown choose the Headless Site


Once the setup is complete then enable the MyCms.Projects module.


Go to Features and you will see the list of all the features. Search for "MyCms.Projects" and enable it.


Once the module is enabled then we can start creating our content.

Go to Content Items page you will see a New Projects menu now.

New Projects

You will be able to create a new project now.

Create Projects