.net Insight Micro ORM在大容量复制时引发异常
我正在使用Insight micro ORM对sql server 2008 R2数据库执行大容量插入。我在执行大容量插入时遇到此异常。我不知道发生这种情况的原因。我确保属性名和sql server表列名的类型和名称正确 这是C代码.net Insight Micro ORM在大容量复制时引发异常,.net,orm,.net,Orm,我正在使用Insight micro ORM对sql server 2008 R2数据库执行大容量插入。我在执行大容量插入时遇到此异常。我不知道发生这种情况的原因。我确保属性名和sql server表列名的类型和名称正确 这是C代码 Public static void DoBulkInsert(string permissionName) { using (IToolTransaction tran = Connection.OpenWithTransactionAs<IToolTra
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();
}
}
[SqlSchema=RJ]
公共接口ITOLTRANSACTION:IDbConnection,IDbTransaction
{
void usersActivateByPermissionNameString权限名称;
}
似乎有一个错误,它将连接双重包装在一个预览包装器和一个自动生成的接口中 我打开了一期github来跟踪这一点: 同时,如果您关闭该场景的概要分析,它应该可以工作。我认为它无论如何都无法分析批量拷贝
public class AuditRemovePermisison
{
public int? ToolId { get; set; }
public int UserId { get; set; }
public string Name { get; set; }
public DateTime CreatedDate { get; set; }
}
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