我正在尝试从 SQL 数据库填充英镑数据库,所以我查询 SQL 得到大约 6000
_engine = new SterlingEngine(new PlatformAdapter());
_engine.Activate();
string folder = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
_databaseInstance = _engine.SterlingDatabase.RegisterDatabase<TCP.Datosejemplol.Sterling.ejemploDatos>("ejemploDatos", new FileSystemDriver(@"E:\pruebaSterling\Otrofolder"));
BLL.Contextos.ContextoIndices manejoIndices = new BLL.Contextos.ContextoIndices(new BLL.SQL.ManejoIndices());
var DatosCompleto = manejoIndices.DatosCompleto();
foreach (var indiceBase in DatosCompleto)
{
var indice = new TCP.Datosejemplol.Sterling.Entidades.Indice()
{
IdIndice = indiceBase.IdIndice,
Nombre = indiceBase.Nombre,
NombreCompleto = indiceBase.NombreCompleto,
IdIndice_padre = indiceBase.IdIndice_padre,
EsPadre = indiceBase.EsPadre
};
_databaseInstance.SaveAsync<TCP.Datosejemplol.Sterling.Entidades.Indice>(indice);
}
它似乎工作正常,但是当关闭与 _engine.Dispose(); 的连接时;
我得到以下异常:
InnerException: System.NullReferenceException
HResult=-2147467261
Message=Referencia a objeto no establecida como instancia de un objeto.
Source=Wintellect.Sterling.Core
StackTrace:
en Wintellect.Sterling.Core.Serialization.AggregateSerializer.Serialize(Object target, BinaryWriter writer) en e:\Proyectos\Sistematizacion\Codigo\TCP.ArbolJurisprudencial\Wintellect.Sterling.Core\Serialization\AggregateSerializer.cs:línea 114
en Wintellect.Sterling.Server.FileSystem.FileSystemDriver.<SerializeIndexAsync>d__c`2.MoveNext() en e:\Proyectos\Sistematizacion\Codigo\TCP.ArbolJurisprudencial\Wintellect.Sterling.Server\FileSystem\FileSystemDriver.cs:línea 129
--- Fin del seguimiento de la pila de la ubicación anterior donde se produjo la excepción ---
en System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
en System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
en System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter.GetResult()
en Wintellect.Sterling.Core.Indexes.IndexCollection`3.<SerializeIndexesAsync>d__8.MoveNext() en e:\Proyectos\Sistematizacion\Codigo\TCP.ArbolJurisprudencial\Wintellect.Sterling.Core\Indexes\IndexCollection.cs:línea 92
--- Fin del seguimiento de la pila de la ubicación anterior donde se produjo la excepción ---
en System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
en System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
en System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter.GetResult()
en Wintellect.Sterling.Core.Indexes.IndexCollection`3.<FlushAsync>d__c.MoveNext() en e:\Proyectos\Sistematizacion\Codigo\TCP.ArbolJurisprudencial\Wintellect.Sterling.Core\Indexes\IndexCollection.cs:línea 104
--- Fin del seguimiento de la pila de la ubicación anterior donde se produjo la excepción ---
en System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
en System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
en System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter.GetResult()
en Wintellect.Sterling.Core.Database.BaseDatabaseInstance.<FlushAsync>d__27.MoveNext() en e:\Proyectos\Sistematizacion\Codigo\TCP.ArbolJurisprudencial\Wintellect.Sterling.Core\Database\BaseDatabaseInstance.cs:línea 633
我尝试检查 saveAsync BackgroundWorker 是否已完成,并且每次都完成。
如果我尝试在每个会话中保存更少的项目,那么一切正常。所以我的问题是:
有没有办法知道保存是否还没有完成?
请指教。
BR
乔治