0

次のクラスがあるとします。

    Module
    {
        long MID    // PK
        string Name
    }

    ModuleBlock
    {
        long MID      // FK
        long BID      // FK
    }

    Block
    {
        long BID      // PK
        string Info
    }

    BlockLanguage
    {
        long BID      // FK
        long LID      // FK
    }

    Language
    {
        long LID      // FK
        string Language
    }

これらがデータで満たされていると想像してください。ここで、一連のブロックを削除したいと思います。どうすればいいですか?適切な ModuleBlocks と BlockLanguages を削除する必要があります。

これが削除したいブロックのリストだとしましょう:

    var blocks = // blocks query here

私はおそらく電話する必要があります:

    Context.Blocks.DeleteAllOnSubmit(blocks);

しかし、ModuleBlock と BlockLanguage でもデータが削除されていることを確認するには、他に何を呼び出す必要がありますか?

4

2 に答える 2

2

おそらく、関連オブジェクトを使用してこれを行うことができます。

Context.ModuleBlocks.DeleteAllOnSubmit(blocks.ModuleBlocks);
Context.BlockLanguages.DeleteAllOnSubmit(blocks.BlockLanguages);
Context.Blocks.DeleteAllOnSubmit(blocks);
于 2012-08-17T10:43:58.087 に答える
1

はい、子オブジェクトを手動で削除する必要があります。ただし、1 つのトリックがあります。外部キーをCASCADESQL Server に設定します。次に、関連付けられたオブジェクトを自動削除します。これが最速で最も簡単なソリューションです。

于 2012-08-17T10:55:58.277 に答える