首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Insight Micro ORM在批量复制时引发异常

Insight Micro ORM在批量复制时引发异常
EN

Stack Overflow用户
提问于 2014-10-25 04:57:57
回答 1查看 266关注 0票数 0

我正在使用Insight micro对sql server 2008 R2数据库执行大容量插入。执行大容量插入时,我遇到了此异常。我不知道为什么会发生这种情况。我确保属性名称和sql server表列名称是正确的类型和名称。

这是C#代码

代码语言:javascript
复制
Public static void DoBulkInsert(string permissionName)
{

using (IToolTransaction tran = Connection.OpenWithTransactionAs<IToolTransaction>())
                  {
                  List<AuditRemovePermisison> audList = new List<AuditRemovePermisison>();
                  list<int> userIds = getUserIds();
                  foreach(int userId in userIds)
                  {
                    audList.Add(new AuditRemovePermisison
                  {
                     ToolId = null,                     
                     UserId = userId,
                     Name = permissionName,
                     CreatedDate = DateTime.Now
                  });
                  }
                      tran.UsersDeactivateByPermissionName
                      tran.BulkCopy("RJ.AuditRemovePermission", audList, configure: (InsightBulkCopy bulk) =>
                          {
                              bulk.BatchSize = 5000;
                          },transaction:tran);                      
                      tran.Commit();
                  }
}

而POCO是

代码语言:javascript
复制
public  class AuditRemovePermisison
    {

        public int? ToolId { get; set; }        
        public int UserId { get; set; }
        public string Name { get; set; }
        public DateTime CreatedDate { get; set; }
    }

Sql(Schema = "RJ")公共接口IToolTransaction : IDbConnection,IDbTransaction {

代码语言:javascript
复制
        void UsersDeactivateByPermissionName(string PermissionName);
代码语言:javascript
复制
 }
代码语言:javascript
复制
Unable to cast object of type 'IToolTransaction1c270692-c6ed-4c04-a8ba-e06109c3c3fd' to type 'Glimpse.Ado.AlternateType.GlimpseDbConnection'.

System.InvalidCastException was caught
  HResult=-2147467262
  Message=Unable to cast object of type 'IToolTransaction526ca86c-f1e4-4552-80a6-798a2a36d69e' to type 'Glimpse.Ado.AlternateType.GlimpseDbConnection'.
  Source=Insight.Database.Providers.Glimpse
  StackTrace:
       at Insight.Database.Providers.Glimpse.GlimpseInsightDbProvider.GetInnerConnection(IDbConnection connection) in c:\projects.net\Insight\Insight.Database\Insight.Database.Providers.Glimpse\GlimpseInsightDbProvider.cs:line 58
       at Insight.Database.Providers.WrappedInsightDbProvider.GetSupportedBulkCopyOptions(IDbConnection connection) in c:\projects.net\Insight\Insight.Database\Insight.Database\Providers\WrappedInsightDbProvider.cs:line 82
       at Insight.Database.Providers.DbConnectionWrapperInsightDbProvider.GetSupportedBulkCopyOptions(IDbConnection connection) in c:\projects.net\Insight\Insight.Database\Insight.Database\Providers\DbConnectionWrapperInsightDbProvider.cs:line 41
       at Insight.Database.DBConnectionExtensions.BulkCopy(IDbConnection connection, String tableName, IDataReader source, Action`1 configure, Boolean closeConnection, InsightBulkCopyOptions options, IDbTransaction transaction) in c:\projects.net\Insight\Insight.Database\Insight.Database\Extensions\DBConnectionExtensions.cs:line 1380
       at Insight.Database.DBConnectionExtensions.BulkCopy[T](IDbConnection connection, String tableName, IEnumerable`1 list, Action`1 configure, Boolean closeConnection, InsightBulkCopyOptions options, IDbTransaction transaction) in c:\projects.net\Insight\Insight.Database\Insight.Database\Extensions\DBConnectionExtensions.cs:line 1339
EN

回答 1

Stack Overflow用户

发布于 2014-11-08 05:44:14

在Glimpse包装器和自动生成的接口中对连接进行双重包装似乎存在一个bug。

我已经打开了一个github问题来跟踪这个:

https://github.com/jonwagner/Insight.Database/issues/158

同时,如果您为该场景关闭了glimpse分析,那么它应该可以工作。我不认为它可以分析批量复制。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26556160

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档