0

で書かれたプログラムがあり、そこには の2 セットを参照C#する があると想像してください。object (A)objects ( set of B, set of C)

これらのオブジェクトは、、、の行として格納されMS SQLます。TableATableBTableC

どこ

TableA has a field ID_Of_B referencing TableB as foreign key in a M:M relationship
TableC has a field ID_Of_A referencing TableA as foreign key in a M:1 relationship

(したがって、単一のオブジェクト A = では 1 行、およびTableAでは複数の行にリンクできます)TableBTableC

私が尋ねようとしている質問は、( の特定の ID の)C#現在B objectsおよびC objectsリンクされているものを選択するために使用したい場合、select ステートメントが次の値を取得するような方法でそれを行うにはどうすればよいかということです正確?object ATableASqlTransaction

(select from A)3 つの異なる select ステートメント、 then (select from B)、 thenを使用して実行しようとしました(select from C)が、これら 3 つの select ステートメント内で、2 つのテーブルのいずれかが情報を変更した可能性があり、結果セットが正確ではない可能性があります。

TLDR:c# SqlTransactionアトミックかつ正確な方法で 1:M および M:M の関係で複数のテーブル データをプルする選択を保証するために使用する方法 (テーブル B および C の他の同時更新 / 削除ステートメントが結果の整合性に影響を与えないようにする)設定)

4

1 に答える 1