回答

收藏

一次插入或更新多个表的最佳实践是什么

技术问答 技术问答 260 人阅读 | 0 人回复 | 2023-09-12

如果我需要通过一个动作更新或插入多个表,请调用一个保存信息的例子,包括多个包含信息的表。
" m  ?6 q1 G5 ^7 o考虑到参数,可以说我们有下表:
2 h+ K1 c; p4 ~% T" ]汽车工作姓名地址
8 H  }8 d# g" B: ]4 ?0 {4 [每次调用保存信息时,都会插入个表插入其中。
# [# Z# J( h  o' b+ p哪个更好:
& r8 x* L7 L& X4 s[ol]获取必须写入名称表的数据。InsertOnSubmit并调用SubmitChanges
  D0 N, c5 Z: m# o$ B# Y$ t" O获取必须写入地址表的数据。InsertOnSubmit并调用SubmitChanges
* ~: K# A$ M2 J5 v9 F必须写入获取Car表的数据InsertOnSubmit并调用SubmitChanges8 h" T0 Z' P1 x+ G
获取必须写入作业表的数据。调用InsertOnSubmit并调用SubmitChanges[/ol]或者
1 H* l" u. p3 j! c2 H2 j. U8 [[ol]获取必须写入名称表的数据。
2 E0 ^, {; E$ s& [获取必须写入地址表的数据。+ Z* k. ?: d- d
必须写入获取Car表的数据。
& v6 l' l8 \" ?1 l  s. B获取必须写入作业表的数据。- o' O. Y" Z$ |% t7 h" _
调用InsertOnSubmit,然后调用SubmitChanges。[/ol]或者8 u4 T% u: U) g' b  K3 Z5 d0 c; [( K
[ol]获取必须写入名称表的数据。InsertOnSubmit
* f7 `+ O! K* Q  O" Y获取必须写入地址表的数据。InsertOnSubmit  C- f+ f1 G8 ^3 C* ~$ |$ B7 y
必须写入获取Car表的数据InsertOnSubmit: H) F5 Z2 A8 t- R9 u
获取必须写入作业表的数据。InsertOnSubmit
' ~. h, V4 K, q* c: D致电SubmitChanges[/ol]我已经实现了给出的第一个选项,我相信这不是最好的方法。我不知道我的网络连接是否有问题,但有时有些手表被写入,而其他手表没有被写入,这确保了我没有尽力。0 U' C5 Q! y6 z1 O0 ^
在一些类似于这个问题的帖子中,有一些与视图和其他选项相关的评论。我没有经验,所以我需要一些指导来了解实现这个目标的最佳方法和我应该关注的方向。6 C& A3 V" Y( g6 F% f; i
                                                                ' s' n& G7 T5 d# u6 J* i* u
    解决方案:                                                                * R$ m, I( {6 E- l0 [! t6 O2 A
                                                                准备第一个表的数据并执行表InsertInSubmit0 Y0 V; n/ ]' t, o' J- T
第二、第三、第四表也是如此。
& U. ~. Q3 S" l# K, a然后执行SubmitChanges。
' @  \. `. E: X& ^. R2 r9 E在数据库中,所有行都将被插入(如果包括这些操作,将被更新或删除)。如果数据库更新过程中出现问题,所有修改将被删除(回滚)。因此,数据完整性是安全的!) C( E% D, c4 l
变量中的数据不会反映数据库,如果发生回滚,则需要再次访问数据。6 z% H( E* \# A. t$ E% X' Y' h: g) n
第二个变体并不总是工作得很好,因为它只包含回滚中的最后一个表。如果表1插入顺利,则2失败,nr 3和4进展顺利,所以你不会注意到第二次失败。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则