nop中导航属性的写法
以以下三张表为例。
SpecificationAttribute对应多个SpecificationAttributeOption。所以他们的关系是一对多。
在SpecificationAttribute。要先定义SpecificationAttributeOption的字段 。
如下所示。
private ICollection<SpecificationAttributeOption> _specificationAttributeOptions;
定义字段后。就可以定导航关系了。
/// <summary> /// Gets or sets the specification attribute options /// </summary> public virtual ICollection<SpecificationAttributeOption> SpecificationAttributeOptions { get { return _specificationAttributeOptions ?? (_specificationAttributeOptions = new List<SpecificationAttributeOption>()); } protected set { _specificationAttributeOptions = value; } }
反之在SpecificationAttributeOption中SpecificationAttribute是一的一端。
所以在SpecificationAttributeOption只要定义一个就够了。当然的定义SpecificationAttributeId
代码如下。
/// <summary> /// Gets or sets the specification attribute identifier /// </summary> public int SpecificationAttributeId { get; set; }
同时导航关系如下所示
/// <summary> /// Gets or sets the specification attribute /// </summary> public virtual SpecificationAttribute SpecificationAttribute { get; set; }
这样就完成了一对多的关系。总结如下:一对多这种关系,则在一的端把多的端定义成为
这个是定义字段 private ICollection<T> _xxxxxxxs;
接着定义属性/// <summary> /// Gets or sets the product specification attribute /// </summary> public virtual ICollection<T> Ts { get { return _xxxxxxxxs ?? (_xxxxxxxxs = new List<Ts>()); } protected set { _xxxxxxxxs = value; } }
这样就完成了在一的端对.多端的定义
在多的端.只要把一的这一端的Id定义下..
public int SpecificationAttributeOptionId { get; set; } public virtual SpecificationAttributeOption SpecificationAttributeOption { get; set; }
OK.完成