16

現在、移行を有効にして EF Code First 4.3 を使用していますが、自動移行は無効になっています。

私の質問は簡単です。モデル構成 .WillCascadeOnDelete(false) に相当するデータ注釈はありますか?

外部キーの関係がカスケード削除をトリガーしないように、クラスを装飾したいと思います。

コードサンプル:

public class Container
{
    public int ContainerID { get; set; }
    public string Name { get; set; }

    public virtual ICollection<Output> Outputs { get; set; }
}

public class Output
{
    public int ContainerID { get; set; }
    public virtual Container Container { get; set; }

    public int OutputTypeID { get; set; }
    public virtual OutputType OutputType { get; set; }

    public int Quantity { get; set; }
}  

public class OutputType 
{
    public int OutputTypeID { get; set; }
    public string Name { get; set; }
}

私はこのようなことをしたいと思います:

public class Output
{
    [CascadeOnDelete(false)]   
    public int ContainerID { get; set; }
    public virtual Container Container { get; set; }

    [CascadeOnDelete(false)]    
    public int OutputTypeID { get; set; }
    public virtual OutputType OutputType { get; set; }

    public int Quantity { get; set; }
}  

このようにして、移行を正しく足場にすることができます。これは、現時点でカスケード削除される外部キー関係を足場にします。

モデル構成を使用する以外のアイデアはありますか?

4

3 に答える 3

19

いいえ、そのような同等のものはありません。流暢な API を使用してカスケード削除を選択的に削除するか、OneToManyCascadeDelete規則を削除してグローバルに削除する必要があります。

于 2012-05-03T13:16:09.903 に答える