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;
しかし、うまくいきません:
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")
);
注文を追加しようとするとエラーが発生します。エラー: null の 1 対 1 のプロパティから ID を割り当てようとしました: ContentItemRecord何が問題なのですか?
更新:
ハンドラ:
public class OrderPartHandler : ContentHandler
{
public OrderPartHandler(IRepository<OrderPartRecord> repository)
{
Filters.Add(StorageFilter.For(repository));
}
}
そして注文を作成します:
_orderRepository.Create(order);