草庐IT

transaction

全部标签

c# - ado.net transaction.commit 抛出信号量异常

当我提交交易时,我得到:System.Threading.SemaphoreFullException:Addingthespecifiedcounttothesemaphorewouldcauseittoexceeditsmaximumcount.atSystem.Threading.Semaphore.Release(Int32releaseCount)atSystem.Data.ProviderBase.DbConnectionPool.PutNewObject(DbConnectionInternalobj)atSystem.Data.ProviderBase.DbConnec

c# - 使用手动事务和分层事务进行单元测试

由于一些限制,我无法使用EntityFramework,因此需要手动使用SQL连接、命令和事务。在为调用这些数据层操作的方法编写单元测试时,我偶然发现了一些问题。对于单元测试,我需要在事务中执行它们,因为大多数操作本质上都在更改数据,因此在事务之外执行它们是有问题的,因为这会更改整个基础数据.因此,我需要围绕这些放置一个事务(最后没有触发提交)。关于这些BL方法的工作原理,现在我有2种不同的变体。一些内部有交易本身,而另一些则根本没有交易。这两种变体都会导致问题。分层事务:在这里我得到错误,DTC由于超时取消了分布式事务(尽管超时设置为15分钟并且它只运行了2分钟)。只有1个事务:当我

c# - 使用 c# api 上传文件时不支持媒体类型 http 响应。

我正在使用https://github.com/tamtakoe/oi.file中的angular和oi.file.js指令我的html看起来像这样:AngularController:$scope.file={};$scope.options={change:function(file){console.log($scope.file);file.$upload('api/fileupload',$scope.file);console.log($scope.file);}};和C#apiController:usingSystem;usingSystem.Collections.G

c# - EntityFramework 测试初始化​​错误 : CREATE DATABASE statement not allowed within multi-statement transaction

我正在尝试构建一个快速测试,每次运行时都会删除并重新创建数据库。我有以下内容:[TestClass]publicclassPocoTest{privateTransactionScope_transactionScope;privateProjectDataSource_dataSource;privateRepository_repository=newRepository();privateconststring_cstring="DataSource=.;InitialCatalog=test_db;Trusted_Connection=True";[TestInitialize

C#锁定SQL Server表的方法

我有一个C#程序需要对SQLServer表执行一组批量更新(20k+)。由于其他用户可以通过Intranet网站一次更新这些记录,因此我们需要构建具有锁定表功能的C#程序。一旦表被锁定以防止其他用户进行任何更改/搜索,我们将需要执行请求的更新/插入。由于我们要处理如此多的记录,我们不能使用TransactionScope(起初似乎是最简单的方法),因为我们的交易最终由MSDTCservice处理.我们需要使用另一种方法。根据我在Internet上阅读的内容,使用SqlTransaction对象似乎是最好的方法,但是我无法锁定表。当程序运行并且我单步执行下面的代码时,我仍然能够通过内部网

c# - 如何在 NHibernate 中克隆对象?

如何在NHibernate中实现对象(实体)的克隆?每个实体类都有这样的属性:publicvirtualIListClubs{get;set;}另外,实体类继承了BaseObject。我尝试使用XML序列化来实现解决方案,但无法序列化接口(interface)。感谢您的回答! 最佳答案 AutoMapperhttp://automapper.codeplex.com/解决了我的问题。例如,可以通过以下方式克隆业务对象:Mapper.CreateMap();varnewtransact=newTransaction();Mapper.

c# - Entity Framework new transaction is not allowed because there are other threads running in the session,多线程保存

我正在尝试将多线程进程的日志保存在数据库中,但出现以下错误:不允许新事务,因为session中还有其他线程在运行。在每个胎面我都有这个功能:internalboolWriteTrace(IResultresult,stringmessage,bytetype){SPC_SENDING_TRACEtrace=newSPC_SENDING_TRACE(message,Parent.currentLine.CD_LINE,type,Parent.currentUser.FULLNAME,Parent.guid);Context.SPC_SENDING_TRACE.AddObject(trac

c# - 事务和事务范围之间的区别

我正在开发一个与SQLServer2005数据库通信以执行某些存储过程的应用程序。我的客户要求所有事务都在C#端进行管理,而不是由SQLServer管理,因此我在访问数据库时使用System.Transactions.TransactionScope。但是,我刚刚看到System.Transactions.Transaction数据类型,我很困惑……每种类型的主要优点/缺点是什么?我应该使用哪一个?请注意,我还必须使用EnterpriseLibrary的数据访问应用程序block。 最佳答案 来自msdn:TheTransactio

c# - 如何查找交易状态

我正在使用“TransactionScope”,我只需要在C#代码中执行一些DML,我已成功完成。我需要查明交易的状态是什么,即交易是否成功完成?因为根据交易状态,如果交易完成则我需要执行重定向到另一个页面,否则如果交易未成功完成则我需要在页面上显示错误。我想在以下之后重定向:-scope.Complete();scope.Dispose();请在这方面帮助我。 最佳答案 如果你visittheMSDNpage对于TransactionScope,您会发现这个有据可查的示例:try{//CreatetheTransactionSco

c# - SQLTransaction 已完成错误

我的应用程序中有一次出现以下错误。ThisSQLTransactionhascompleted;itisnolongerusableStackTrace附在下面–它说明了ZombieCheck和Rollback。代码中有什么错误?注意:此错误只出现一次。更新来自MSDN-SqlTransaction.RollbackMethodARollbackgeneratesanInvalidOperationExceptioniftheconnectionisterminatedorifthetransactionhasalreadybeenrolledbackontheserver.来自Zom