3

カスケードルール「Set Null」を持つ1対多の関係をどのように設定するのか疑問に思っていました。ここに私が使用している2つのエンティティがあります。StandradRelay は、RelayConfig と 1 対多の関係にあります。

public class StandardRelay {
    ...
    public virtual ICollection<RelayConfig> RelayConfigs { get; set; }
}

public class RelayConfig  {
    ...
    public virtual StandardRelay StandardRelay { get; set; }
}

デフォルトでは、上記のコードは"No Action"の Cascade ルールになります。ということで、以下の流暢なAPIでDbModelBuilderを使ってみました。

modelBuilder.Entity<StandardRelay>()
            .HasMany<RelayConfig>(s => s.RelayConfigs)
            .WithOptional(r => r.StandardRelay)
            .WillCascadeOnDelete(false);

これもまた、 「アクションなし」のカスケード ルールになります。次に、次のことを試しました

        modelBuilder.Entity<StandardRelay>()
                    .HasMany<RelayConfig>(s => s.RelayConfigs)
                    .WithOptional(r => r.StandardRelay)
                    .WillCascadeOnDelete(true);

これにより、 「削除」のカスケード ルールが発生します。

つまり、「Set Null」のカスケード ルールを設定するオプションはありません。同じものをどのように構成しますか?

4

1 に答える 1

1

不可能です。

手動で処理する必要があります。

于 2012-11-22T12:19:41.020 に答える