【问题标题】:Override the [Required] properties attributes in a wrapper/composition class覆盖包装器/组合类中的 [必需] 属性
【发布时间】:2018-04-02 09:42:01
【问题描述】:

有以下类:

public class A
{
    [Required]
    public string property { get; set; }      
}

它被另一个类使用,例如:

public class B 
{
    public A prop { get; set; }
    public A prop2 { get; set; }
}

在我的场景中,B.prop.property 应该是必需的,而 B.prop2.property 不应该是 [Required]

有没有办法覆盖不需要的prop2.property 属性?它还应该影响数据库中记录的记录吗? 如果不是,处理此类问题的最推荐做法是什么?

【问题讨论】:

  • 看看this我想它回答了你的问题
  • 你描述的不是继承。我已经相应地编辑了你的帖子

标签: c# entity-framework asp.net-core asp.net-core-2.0


【解决方案1】:

没有。没有办法实现你所说的。你可以通过继承来做到这一点。例如:

public class C : A
{
    public new string property { get; set; }
}

然后:

public class B 
{
    public A prop { get; set; }
    public C prop2 { get; set; }
}

换句话说,该属性必须是不需要该属性的类型。您不能随意禁用类实例上的属性。

【讨论】:

  • 我最终制定了一个类似的解决方案,创建了另一个不需要属性的类,如果我的字段完全是可选的,则使用它。顺便说一句,你在银河护卫队中表现出色!第一个和第二个,欢呼 XD
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-12
  • 1970-01-01
  • 2017-03-18
  • 2016-07-20
相关资源
最近更新 更多