我有一个父类ListableEntity
,其Description
属性使用属性[DbUnique]
,该属性在SQL表中对此字段设置唯一约束。
public abstract partial class ParentEntity<T> {
[DbUnique]
public string Description { get; protected set; }
}
我需要创建一个ListableEntity的子类,与父类不同,它允许Description
属性具有重复值。但即使我在子类中隐藏父属性,仍然会以某种方式应用此DbUnique属性,从而防止重复描述。以下是我对儿童班的相关摘录:
public class ChildEntity : ParentEntity<ChildEntity>
{
public new string Description { get; private set; }
}
我对C#很新。我的理解是这个孩子的描述属性会覆盖ChildEntity对象的父级,但是当我尝试使用重复描述保存ChildEntities时,我仍然得到异常,&#34;无法插入具有唯一索引的重复键行&#39; IX_Description&#39;。&#34;有谁知道为什么来自父属性的这个属性仍然被应用,以及我如何防止这种情况?谢谢。
答案 0 :(得分:0)
你可以做两件事,一件是更改属性名称,例如ParentDescription和ChildDescription(我认为这是最好的选择)。另一个是将另一个类的属性“Description”作为“abstract”,因此在子类中,您必须覆盖这些属性。
GrandParent - &gt; ParentEntity - &gt; ChildEntity