[英]EF6 Code First not mapping my M-0 relationsip
我希望能够键入SupplyPoint.SupplyPointMeters
并将后者作为一个集合。 Code First已创建表并正确设置了外键,但我希望能够以这种方式访问SupplyPoint.SupplyPointMeters
。
因此,在摘要中, SupplyPointMeter
始终具有一个SupplyPoint
但是SupplyPoint
可以具有0
或多个SupplyPoint
仪表。 一切正常,但我希望关系自动加入以支持点表示法。
public partial class SupplyPointMeter
{
[Key]
public int SupplyPointMeterId { get; set; }
public int SupplyPointId { get; set; }
[Key,ForeignKey("SupplyPointId")]
public virtual SupplyPoint SupplyPoint { get; set; }
}
public partial class SupplyPoint
{
[Key]
public int SupplyPointId { get; set; }
public virtual ICollection<SupplyPointMeter> SupplyPointMeters { get; set; }
}
尝试这种方式。
public class SupplyPointMeter
{
public int Id { get; set; }
public virtual SupplyPoint SupplyPoint { get; set; }
}
public class SupplyPoint
{
public int Id { get; set; }
public virtual ICollection<SupplyPointMeter> SupplyPointMeters { get; set; }
}
我建议您使用流利的映射 :
modelBuilder.Entity<SupplyPoint>()
.HasMany(sp => sp.SupplyPointMeters)
.WithRequired(spm => spm.SupplyPoint)
.HasForeignKey(spm => spm.SupplyPointId);
另外,您也不需要标记键-如果键属性与type_name + id
模式匹配,则按惯例将其视为键:
public partial class SupplyPointMeter
{
public int SupplyPointMeterId { get; set; }
public int SupplyPointId { get; set; }
public virtual SupplyPoint SupplyPoint { get; set; }
}
public partial class SupplyPoint
{
public int SupplyPointId { get; set; }
public virtual ICollection<SupplyPointMeter> SupplyPointMeters { get; set; }
}
这将产生以下表格
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.