想象一下,有一个用 编写的程序,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),我该如何使用SqlTransactionselect 语句将检索的值准确的?
我尝试使用 3 个不同的选择语句(select from A),然后(select from B),然后(select from C),但在这 3 个选择语句中,两个表中的任何一个都可能更改了信息,结果集可能不准确。
TLDR:如何使用c# SqlTransaction来保证一个select以原子和准确的方式以1:M和M:M关系拉取多个表数据(不让表B和C中的其他同时更新/删除语句影响结果的完整性放)