0

Entity Framework を使用していますが、奇妙な問題に遭遇しました。コレクションをデータベースに保存しようとしています (例: ラウンドのコレクション)。このコレクションの各アイテムには、子要素のコレクション (イベントのコレクションなど) があります。

これは次のようになります。

Round 1
    (No Child Elements)
Round 2
    Event 1
    Event 2
    Event 3
Round 3
    (No Child Elements)
Round 4
    Event 1
    Event 2

上記のように、親オブジェクトが常に子コレクションを持つ必要はありません。

ここに問題があります。私の要件は、データをコレクションに追加したときにデータを保存することです。ただし、保存中に EF は最初に子コレクションを持つアイテムを保存するため、保存時に順序が変更されます。したがって、データベースではラウンド 2 が最初に保存され、次に他のラウンドがランダムに保存されます。

作成した順序で EF に Rounds コレクションを強制的に保存させる方法はありますか?? 必ずラウンド 1 からセーブを開始し、ラウンド 4 のセーブで終了する必要があります。

みんなありがとう : )

4

1 に答える 1

4

データベースも EF も順序付けを保証しません。同様に、データベースにクエリを実行する場合、期待される順序で要素を取得する必要はありません。正確な順序が必要な場合は、列を追加してレコードの順序値を保持OrderByし、データを取得するときに拡張メソッドを使用する必要があります。

によって実行される操作の順序はSaveChanges、EF によって完全に制御されます。変更することはできません。

于 2012-06-07T07:33:41.017 に答える