我无法在salesheader和saleslines之间映射一对多的关系。我首先使用实体框架6.1从数据库中使用Code,并使用流畅的api。一个销售主管可以有多个销售线。
SalesHeader PK是文档类型,没有
SalesLine PK是凭证号,行号和凭证类型
SalesLine中的文档号是SalesHeader中的外键
modelBuilder.Entity<SalesLine>()
.HasRequired<SalesHeader>(s => s.SalesHeader)
.WithMany(s => s.SalesLines)
.HasForeignKey(s => new { s.Document_No_, s.Line_No_, s.Document_Type });
public partial class SalesHeader
{
[Key]
[Column("Document Type", Order = 0)]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public int Document_Type { get; set; }
[Key]
[Column(Order = 1)]
[StringLength(20)]
public string No_ { get; set; }
[Column("Sell-to Customer No_")]
[Required]
[StringLength(20)]
public string Sell_to_Customer_No_ { get; set; }
public virtual ICollection<SalesLine> SalesLines { get; set; }
}
public partial class SalesLine
{
[Key]
[Column("Document Type", Order = 0)]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public int Document_Type { get; set; }
[Key]
[Column("Document No_", Order = 1)]
[StringLength(20)]
public string Document_No_ { get; set; }
[Key]
[Column("Line No_", Order = 2)]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public int Line_No_ { get; set; }
[Required]
[StringLength(20)]
public string No_ { get; set; }
public virtual SalesHeader SalesHeader { get; set; }
}
答案 0 :(得分:0)
要使用数据注释执行此操作,请在SalesLine
类中包含此内容:
[Key, ForeignKey("SalesHeader")]
[Column("Document Type", Order = 0)]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public int Document_Type { get; set; }
[Key, ForeignKey("SalesHeader")]
[Column("Document No_", Order = 1)]
[StringLength(20)]
public string Document_No_ { get; set; }