我有一个DAL基类,它集中了我的应用程序中的所有数据库调用代码。我希望确保所有插入/更新/删除操作都被包装在一个事务中,而不管它是否写入到SP中。将我的'ExecuteNonQuery'DAL方法包装在TransactionScope中是否会是一个好习惯,还是我会为不需要它的db调用添加大量开销。是否总是在DAL基类中使用TransactionScope是一种好的做法?
我很高兴在需要包装多个服务调用时使用TransactionScope在UI中进一步提升,它实际上只是在SP级别实施,我不确定。
即时通讯使用.net 3.5和大多数SQLServer 2008,一些客户端仍然使用2005年 - 希望很快移动这些。
感谢
所以你说我的.NET DAL方法包裹在交易中,但不包括它在我的基类方法?请注意,我只是打算将它添加到目前仅用于更新/删除的ExecuteNonQuery基本方法中。在你的第一个声明中,你推断一个事务(例如)不会在单个SP删除调用中启动,SP可能会运行多个删除/更新语句? – 2011-05-31 08:04:24
@Joel - 我在说*一般*您希望交易跨越多个操作,但也可以:您可能根本不想要交易。我不认为太多的锅炉板在这里帮助...交易需要思考。 – 2011-05-31 08:24:56