尝试从null一对一属性中分配id:ContentItemRecord - Orchard CMS

Max*_*kov 1 c# asp.net orchardcms

我正在为Orchard CMS编写模块.

有几张桌子.在Migrations.cs中:

它工作正常:

            SchemaBuilder.CreateTable("CustomerPartRecord", table => table
            .ContentPartRecord()
            .Column<string>("FirstName", c => c.WithLength(50))
            .Column<string>("LastName", c => c.WithLength(50))
            .Column<string>("Title", c => c.WithLength(10))
            .Column<DateTime>("CreatedUtc")
            );

        ContentDefinitionManager.AlterPartDefinition("CustomerPart", part => part
            .Attachable(false)
            );

        ContentDefinitionManager.AlterTypeDefinition("Customer", type => type
            .WithPart("CustomerPart")
            .WithPart("UserPart")
            );
        return 6;
Run Code Online (Sandbox Code Playgroud)

但它不起作用:

            SchemaBuilder.CreateTable("OrderPartRecord", t => t
            .ContentPartRecord()
            .Column<int>("CustomerId", c => c.NotNull())
            .Column<DateTime>("CreatedAt", c => c.NotNull())
            .Column<decimal>("SubTotal", c => c.NotNull())
            .Column<string>("Status", c => c.WithLength(50).NotNull())
            );

        ContentDefinitionManager.AlterPartDefinition("OrderPart", part => part
             .Attachable(false)
        );

        ContentDefinitionManager.AlterTypeDefinition("Order", type => type
            .WithPart("OrderPart")
        );
Run Code Online (Sandbox Code Playgroud)

我尝试添加Order时出错.错误:尝试从null一对一属性中分配id:ContentItemRecord出了什么问题?

UPD:

处理器:

public class OrderPartHandler : ContentHandler
{
    public OrderPartHandler(IRepository<OrderPartRecord> repository)
    {
        Filters.Add(StorageFilter.For(repository));
    }
}
Run Code Online (Sandbox Code Playgroud)

并创建订单:

_orderRepository.Create(order);
Run Code Online (Sandbox Code Playgroud)

Ber*_*Roy 6

您不应该自己为部件记录创建记录.如果要在没有内容项的情况下创建它,请将其设为常规记录,而不是内容部分记录.内容部分记录需要始终与内容项相关联,并通过内容管理器而不是直接创建存储库.