0

いくつかのオブジェクト間でエンティティ フレームワークを適切に設定する方法について質問があります。3 つのオブジェクト/テーブルは次のとおりです: Company、Orders、Channels Company は 1 対多の Orders Company は 1 対多の Channels Channels は 1 対多の 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;}
 }

チャネルに移動してから会社に移動することで、注文から会社へのリンクを削除できることはわかっていますが、注文にチャネルがない場合があります。しかし、注文に会社がないというケースは決してありません。1 対多の順序関係を持つ 3 番目のオブジェクトもありますが、最初の 2 つが正しく機能すれば、それを理解できます :)

私は dataannotations メソッドを使用したいと思いますが、流暢でも問題ありません。

4

1 に答える 1