数据访问设计:每个存储过程多个结果集单个存储过程或单个结果集

时间:2013-09-30 15:03:33

标签: c# .net data-access-layer data-access

这是构建复杂对象(急切加载)的更好方法。对存储过程的单个调用,该存储过程返回多个结果集或多个调用存储过程,每个调用具有一个结果集?我正在使用.NET中的T4 /文本模板构建我的DAL,所以我倾向于后者。

谢谢!

2 个答案:

答案 0 :(得分:0)

这取决于应用程序的整体架构设计模型。如果您使用的是Table Data GatewayActive Record,那么后者可能会更好。如果您使用的是所谓的域模型或Domain driven Design,那么前者更合适。

答案 1 :(得分:0)

我不记得上次我们编写的存储过程一次性返回多个结果集。它实际上是一个整体的好处是罕见的。

我能想到做这样的事情的唯一原因是(a)表现 - 例如如果SELECTS需要临时表或许多对所有这些表都通用的设置,或者(b)如果数据有可能在调用之间发生变化并且想要使用可序列化隔离语义。

如果所有行集都相互独立且没有共同设置,那么一定要将它们分开。假设您使用的是较低级别的连接协议(例如TCP / IP或命名管道,而不是像SQL over XML那样的繁琐技术),往返的成本并不是一个重要的因素。更重要的是,如果您可以单独调用sprocs,这意味着您可以异步并行地调用它们,如果您想要解决问题,甚至可以实现卓越的性能。