想象一下,有一个用 编写的程序,C#
其中有一个object (A)
引用 2 组的objects ( set of B, set of C)
.
这些对象MS SQL
作为行存储在TableA
, TableB
,TableC
在哪里
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
,它可以链接到TableB
和中的多行TableC
)
我想问的问题是,如果我想用来C#
选择当前B objects
和C objects
链接到object A
(特定 ID 中的TableA
),我该如何使用SqlTransaction
select 语句将检索的值准确的?
我尝试使用 3 个不同的选择语句(select from A)
,然后(select from B)
,然后(select from C)
,但在这 3 个选择语句中,两个表中的任何一个都可能更改了信息,结果集可能不准确。
TLDR:如何使用c# SqlTransaction
来保证一个select以原子和准确的方式以1:M和M:M关系拉取多个表数据(不让表B和C中的其他同时更新/删除语句影响结果的完整性放)