实体框架,代码第一次3类相同的属性
问题描述:
让我们假设我有3种类型具有相同元/导航属性HTML类的:实体框架,代码第一次3类相同的属性
- 公共虚拟字符串HtmlTagName {获得;设置;}
-
public virtual ICollection <属性>属性{get;设置;}
等等等等等等
这些3类之间的唯一差别是:
- 一个的Html类可具有HTML类的集合(父的Html类)
- 一个类可以是一个Html类(Child Html Class)的子类
- 一个类是独立的,即。它不是一个父类别,也不是一个HTML类别的另一个html类别(单个Html类别)
在我看来,拥有3个相同属性的类,保存它是父类,子类还是单个类,因为(同样,尽可能多的属性是相同的)。
答
我想我找到了答案,有人纠正我,如果我错了:
public class HtmlElement : DelEntity
{
// Primitives
public virtual string DisplayName { get; set; }
// Foreign Key
public virtual long? ParentElementId { get; set; } // If it is a child
//Navigation - Class
[ForeignKey("ParentElementId")]
public virtual HtmlElement ParentHtmlElement { get; set; }
//Navigation - Collections (if it is a parent)
private ICollection<HtmlElement> _childElements;
[InverseProperty("ParentHtmlElement")]
public virtual ICollection<HtmlElement> ChildElements
{
get { return _childElements ?? (_childElements = new HashSet<HtmlElement>()); }
set { _childElements = value; }
}
}
是的,除非有一个孩子永远不能变成父母等等,那么你的要求需要使用其他模式,例如遗产。 – 2012-08-14 15:25:38