我对在几个对象之间正确设置实体框架有疑问。这三个对象/表是:Company、Orders、Channels Company 与 Orders 是一对多 Company 与 Channels 是一对多 Channels 与 Orders 是一对多
当我按如下方式设置它们时,我得到“可能导致循环或多个级联路径”错误。
public class Order
{
/// <summary>
/// System Generator OrderNumber
/// </summary>
[Key]
public int ID { get; set; }
/// <summary>
/// Company associated to this order
/// </summary>
[ForeignKey("MerchantId")]
public virtual Company { get; set; }
public int CompanyId { get; set; }
/// <summary>
/// ID of the channel that provided this information
/// </summary>
[ForeignKey("SourceChannelId")]
public virtual Channel { get; set; }
public int ChannelId { get; set; }
}
public class Company
{
public List<Order> Orders{get;set;}
public List<Channel> Channels{get;set;}
}
public class Channel
{
public List<Order> Orders{get;set;}
}
我知道我可以通过转到渠道然后转到公司来消除订单中与公司的链接,但是在某些情况下订单可能没有渠道。但是从来没有一个订单没有公司的情况。还有第三个对象与订单有一对多关系,但我可以弄清楚如果我让前两个正常工作:)
我更喜欢使用 dataannotations 方法,但流利的也很好。