小编use*_*260的帖子

MVC - 并行任务中的 System.Threading.ThreadAbortException

在我的 MVC 应用程序中,超级管理员可以设置任务队列,例如更新数据库。因此,当管理员向队列添加更新时,控制器会启动一个在后台工作的新任务。但是,当您添加一些任务时,应用程序会抛出 System.Threading.ThreadAbortException: Thread was being aborted. 此外,堆栈跟踪表明它发生在代码的不同行上。

我还应该补充一点,这些任务使用 EF6 实体与 SQL-server 一起工作,并且根据堆栈跟踪,它发生在对数据库执行操作之后或期间。由于更新通常很大,我db.Configuration.AutoDetectChangesEnabled = false每 20k 行使用并手动保存更改,处理和重新创建数据库。

堆栈跟踪示例:

2015 年 7 月 15 日星期三下午 5:18:36:[报告] 异常(行:456667;第 6 节):System.Threading.ThreadAbortException:线程被中止。在 System.Array.Copy(Array sourceArray, Int32 sourceIndex, Array destinationArray, Int32 destinationIndex, Int32 length, Boolean 可靠) 在 System.Collections.Generic.List`1.set_Capacity(Int32 value) 在 System.Data.Entity.Core。 Metadata.Edm.MetadataCollection`1.SetReadOnly() 在 System.Data.Entity.Core.Metadata.Edm.TypeUsage..ctor(EdmType edmType, IEnumerable`1 facets) 在 System.Data.Entity.Core.Common.CommandTrees。 DbExpression..ctor(DbExpressionKind kind, TypeUsage type, Boolean forceNullable) 在 System.Data.Entity.Core.Common.CommandTrees.ExpressionBuilder.DbExpressionBuilder.PropertyFromMember(DbExpression 实例,EdmMember 属性,

有什么我可能做错的吗?

.net c# asp.net-mvc multithreading entity-framework

4
推荐指数
1
解决办法
1901
查看次数

SQL Server:分别自动递增字段

我有一个包含两列的表,其中没有任何列是唯一的。我需要number为每个用户分别自动增加列。

user | number
1    | 1
2    | 1
1    | 2 
3    | 1
Run Code Online (Sandbox Code Playgroud)

我能想到的唯一想法是搜索最后使用的数字并手动加一。有没有更有效的方法?

sql-server

3
推荐指数
1
解决办法
636
查看次数