具有复杂类型的SchemaBuilder

时间:2015-12-24 09:13:06

标签: orchardcms

我想存储复杂的内容部分记录,但无法在迁移文件中使用SchemaBuilder创建列。

以下是我的课程:

public enum BoxInheritance
{
    Empty, Inherit, Enter
}

public class BoxSize
{
    public string Width { get; set; }
    public string Height { get; set; }
}

public class BoxSpace
{
    public string Left { get; set; }
    public string Right { get; set; }
    public string Top { get; set; }
    public string Bottom { get; set; }
}

public class BoxPartRecord : ContentPartRecord
{
    public virtual BoxSize Size { get; set; }
    public virtual BoxSpace Space { get; set; }
    public virtual Dictionary<string, BoxInheritance> Inheritances { get; set; }

    public BoxPartRecord()
    {
        Size = new BoxSize();
        Space = new BoxSpace();
        Inheritances = new Dictionary<string, BoxInheritance>();
    }
}

可以使用这样的内容部分记录吗? 如何为此内容部分记录创建表?

1 个答案:

答案 0 :(得分:4)

我认为这不会奏效。我的建议是在记录类中使用简单类型,在内容部分本身使用复杂类型(你可以在那里进行映射)。

public class BoxPartRecord
{
  public virtual int Width { get; set; }
  public virtual int Height { get; set; }
  ...
}

public class BoxPart : ContentPart
{
  public BoxSize Size { get { return new BoxSize {record.Width, record.Height} ...
}