我正在尝试在迁移中构建具有以下内容的模块:
public class XyzzyPartRecord : ContentPartRecord
{
public virtual string Plugh { get; set; }
}
public class XyzzyPart : ContentPart<XyzzyPartRecord>
{
public string Plugh {
get { return Retrieve( r => r.Plugh ); }
set { Store( r => r.Plugh, value ); }
}
}
public int Create() {
SchemaBuilder.CreateTable( "XyzzyPartRecord", table => table
.ContentPartRecord()
.Column<string>( "Plugh" )
);
ContentDefinitionManager.AlterPartDefinition( "XyzzyPart", cfg => cfg
.WithDescription( "XyzzyPart" ) );
ContentDefinitionManager.AlterTypeDefinition( "XyzzyItem", cfg => cfg
.WithPart( "XyzzyPart" )
);
return 1;
}
访问XyzzyItem时,Parts集合中没有XyzzyPart。而是有一个ContentPart。
如何让我的内容部件允许将其添加到内容项的部件集合中?
答案 0 :(得分:0)
我忽略了创建驱动程序或处理程序。一旦这些到位,我的代码就按预期工作了。
namespace MyProject.Drivers {
public class XyzzyPartDriver : ContentPartDriver<XyzzyPart> {
protected override DriverResult Display( XyzzyPart part, string displayType, dynamic shapeHelper ) {
return ContentShape( "Parts_Xyzzy",
() => shapeHelper.Parts_Xyzzy(
Xyzzy: part ) );
}
}
}
namespace MyProject.Handlers {
public class XyzzyPartHandler : ContentHandler {
public XyzzyPartHandler( IRepository<XyzzyPartRecord> repository ) {
Filters.Add( StorageFilter.For( repository ) );
}
}
}