2

对于我所有的模型实体,我继承了一个基类,但是当我尝试将继承的字段之一放在网格上时,它只是不显示它们。我的解决方法是在派生类上创建一个包装器属性,现在网格显示该列。

前任:

public class BaseEntity
{
    public Guid RowId  { get; set; }
    public bool Deprecated { get; set; }
    public bool Deleted { get; set; }<br/>
    public DateTime DateTimeStamp { get; set; }
}

public class Foo : BaseEntity
{
    public int FooId { get; set; }
    public string Description{ get; set; }
}

和网格设置

@(Html.Kendo().Grid<Foo>()
.Name("Grid")
.Columns(cols =>
{
    cols.Bound(c => c.FooId);
    cols.Bound(c => c.Description);
    cols.Bound(c => c.DateTimeStamp).Format("{0:yyyy-MM-dd HH:mm}").Title("Date/Time").Sortable(false);
.Pageable()
.Sortable()

)

为了使其工作,我必须添加一个引用基类属性的属性,如下所示:

public class Foo : BaseEntity
{
    public int FooId { get; set; }
    public string Description{ get; set; }
    public new DateTime DateTimeStamp
    {
        get { return base.DateTimeStamp; }
        set { base.DateTimeStamp = value; }
    }
}

有什么方法可以避免在派生类上使用 wrapper 属性?

谢谢

4

0 回答 0