【发布时间】:2017-10-23 22:22:04
【问题描述】:
我正在制作一个从 Firebird 到 SQL Server 的同步应用程序。 我正在使用 Dapper Plus 的 BulkInsert。
var fbClient = new FirebirdConnect();
using (var source = fbClient.GetConnection())
{
if (source.State == ConnectionState.Closed)
source.Open();
var sqlClient = new AzureConnect();
using (var target = sqlClient.GetConnection())
{
if (target.State == ConnectionState.Closed)
target.Open();
var lastUpdate = connection.Query<DateTime>($"select coalesce((select max(DateSyncTarget) from {metadados.TargetName}), getdate()-10000) LastUpdate").ToList();
var resultSource = source.Query<MyClass>("select * from MyClass");
target.BulkInsert(resultSource.Where(w => w.Data > lastUpdate[0]));
var resultTargert = target.Query<MyClassSource>("select * from MyClass")
source.BulkInsert(resultTargert.Where(w => w.Data > lastUpdate[0]));//Error here
}
}
当我咨询源以在目标中插入时,一切都很好。
但是当我查询目标以插入源时,它给出了以下错误:
无法解析提供程序。您必须明确设置 提供者。
对什么导致错误的一些想法?
已编辑:
全栈:
em ..(BulkOperation )
em ..(BulkOperation )
em Z.BulkOperations.BulkOperation.BulkInsert()
em Z.Dapper.Plus.DapperPlusAction.Execute()
em Z.Dapper.Plus.DapperPlusAction..ctor(BaseDapperPlusActionSet action, String key, DapperPlusActionKind kind, Object dataSource)
em Z.Dapper.Plus.DapperPlusActionSet`1.AddAction(String mapperKey, DapperPlusActionKind actionKind, TEntity item)
em Z.Dapper.Plus.DapperPlusActionSet`1.DapperPlusActionSetBuilder(IDbConnection connection, IDbTransaction transaction, String mapperKey, DapperPlusActionKind actionKind, TEntity item, Func`2[] selectors)
em Z.Dapper.Plus.DapperPlusExtensions.BulkInsert[T](IDbConnection connection, String mapperKey, T item, Func`2[] selectors)
em Z.Dapper.Plus.DapperPlusExtensions.BulkInsert[T](IDbConnection connection, T item, Func`2[] selectors)
em Project.Plugins.Utils.Extensions.CommandExtensions.InsertSource[T](IDbConnection connection, IEnumerable result) na D:\Projetos\Project-API-Cloud\project-etl\Project.Plugins.Utils\Extensions\CommandExtensions.cs:linha 52
em Autorizacoes.ERP.LIBSENHA.JobAutorizacoes.Execute(IJobExecutionContext context) na D:\Projetos\Project-API-Cloud\Project-etl\Autorizacoes\JobAutorizacoes.cs:linha 105
【问题讨论】:
-
您是否切换了术语源和目标,通常您会插入目标,而不是源。无论如何,请发布异常的完整堆栈跟踪。
-
我编辑了问题并包含了完整的堆栈。 @MarkRotteveel。我想将数据从目标插入源,有时我的用户可以插入目标并在源中看到它。
-
你没有包含堆栈跟踪的头部(包含异常名称+消息
-
StackTrace 只返回这个。 imgur.com/a/fw1AZ
-
右边不是有滚动条吗?尝试右键单击并在菜单“全选”中然后再次右键单击并在菜单“复制”中
标签: c# firebird dapper dapper-plus