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)
您不应该自己为部件记录创建记录.如果要在没有内容项的情况下创建它,请将其设为常规记录,而不是内容部分记录.内容部分记录需要始终与内容项相关联,并通过内容管理器而不是直接创建存储库.
| 归档时间: |
|
| 查看次数: |
2259 次 |
| 最近记录: |