我是Entity Framework的新手。我已经使用Code-First-From-Database方法为lawson数据库中的CUSTORDER和COLINE表生成POCO。这两个POCO如下所示:注意:我删除了大部分字段以便于阅读。
[Table("LAWSON.CUSTORDER")]
public partial class CustOrder
{
[Key]
[Column(Order = 0)]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public short COMPANY { get; set; }
[Key]
[Column(Order = 1)]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public int ORDER_NBR { get; set; }
public bool R_STATUS { get; set; }
[Required]
[StringLength(2)]
public string ORDER_TYPE { get; set; }
public DateTime ORDER_DATE { get; set; }
public DateTime PRICE_DATE { get; set; }
. . .
}
[Table("LAWSON.COLINE")]
public partial class CoLine
{
[Key]
[Column(Order = 0)]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public short COMPANY { get; set; }
[Key]
[Column(Order = 1)]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public int ORDER_NUMBER { get; set; }
[Key]
[Column(Order = 2)]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public int LINE_NBR { get; set; }
public bool R_STATUS { get; set; }
. . .
}
当我使用DBContext检索CustOrder时,我希望它还包括与CustOrder关联的所有CoLine。我想我需要在CustOrder类中添加以下内容。
public virtual IList<CoLine> CoLines { get; set; }
但是如何告诉EF使用CustOrder中的ORDER_NBR列加入这两个表来加入CoLine列中的ORDER_NUMBER?
答案 0 :(得分:1)
您需要在FK属性上使用ForeignKey
属性:
public class CustOrder
{
[Key]
[Column(Order = 1)]
[ForeignKey("CoLines")]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public int ORDER_NBR { get; set; }
public virtual ICollection<CoLine> CoLines { get; set; }
}
我还建议将导航属性类型更改为ICollection<T>
。有关详细信息,请查看此link。
答案 1 :(得分:0)
它的价值,
#contain
是如何从CustOrder对象将nav属性设置为CoLine对象的。像提到的octavioccl一样,你需要添加FK表示法,但是你想要在我认为的CoLine类上,在ORDER_NBR属性上。