0

我首先使用 EF 4.1 代码来定义我的数据库模型类。请看下面的代码:

public abstract class TableElement
{
    public Guid ID { get; set; }
    // and other common properties
}

public class Row : TableElement
{
    public double? Width { get; set; }
    public double? Height { get; set; }

    public ICollection<Cell> Cells { get; set; }
}

public class Cell : TableElement
{
    public double? CellWidth { get; set; }
    public double? CellHeight { get; set; }

    public virtual Row ParentRow { get; set; }
}

我想部分/选择性地从类 Row 继承类 Cell 的一些属性(注意我是从 Row 驱动 Cell)。这个想法是我希望 Row 类控制/更改其 Cells 子级的某些属性,除非它们具有本地覆盖。我使用这段代码来完成这项工作:

public class Cell : TableElement
{
    public double? CellWidth { get; set; }
    [NotMapped]
    public double? Width
    {
        get { return CellWidth ?? ParentRow.Width; }
        set { CellWidth = value; }
    }

    public double? CellHeight { get; set; }
    [NotMapped]
    public double? Height
    {
        get { return CellHeight ?? ParentRow.Height; }
        set { CellHeight = value; }
    }

    public virtual Row ParentRow { get; set; }
}

我不确定这是不是最好的方法,因为我的实际项目中的一些属性是复杂类型而不是 Nullable(虽然有一个解决方法)。无论如何,我会很感激对此的任何其他想法。

4

0 回答 0