0

EF 创建 Item 类,然后我创建一个带有元数据类型 ItemMD 的部分 Item 类。

在某些情况下,我想使用 ItemMD 中定义的 UIHint,但在其他情况下,我想覆盖 UIHint 以使用另一个编辑器。所以我尝试创建一个继承 ItemMD 的派生类......但我不认为这是你应该这样做的。它可以编译,但我的行为不一致......当我的 Razor 表单中有 5 个字段时,4 个使用基本 ItemMD UIHint,1 个使用派生类 UIHint。不知道为什么不一致。

[MetadataType(typeof(ItemMD))]
public partial class Item : AuditStamps, IEntity, IAuditStamps
{
}

public partial class ItemMD
{
public int Id { get; set; }

[Display(Name = "Company Id")]
public int CompanyId { get; set; }

public string Description { get; set; }

[Display(Name = "Short Description")]
public string ShortDescription { get; set; }

[Display(Name = "Type")]
[UIHint("ItemAtrributesComboBox")]
public virtual string Attribute1 { get; set; }

[Display(Name = "Color")]
[UIHint("ItemAtrributesComboBox")]
public virtual string Attribute2 { get; set; }

[Display(Name = "Finish")]
[UIHint("ItemAtrributesComboBox")]
public virtual string Attribute3 { get; set; }

[Display(Name = "Texture")]
[UIHint("ItemAtrributesComboBox")]
public virtual string Attribute4 { get; set; }

[Display(Name = "Gauge")]
[UIHint("ItemAtrributesComboBox")]
public virtual string Attribute5 { get; set; }

public class ItemSearchFiltersViewModel : OTIS.domain.InventoryMgmt.Item.ItemMD
{
    [Display(Name = "Type:")]
    [UIHint("ItemAttributesDDL")]
    public override string Attribute1 { get; set; }

    [Display(Name = "Color:")]
    [UIHint("ItemAttributesDDL")]
    public override string Attribute2 { get; set; }

    [Display(Name = "Finish:")]
    [UIHint("ItemAttributesDDL")]
    public override string Attribute3 { get; set; }

    [Display(Name = "Texture:")]
    [UIHint("ItemAttributesDDL")]
    public override string Attribute4 { get; set; }

    [Display(Name = "Gauge:")]
    [UIHint("ItemAttributesDDL")]
    public override string Attribute5 { get; set; }
}
4

0 回答 0