我正在尝试使用RavenDB(3.0)并尝试使用批量插入功能。然而,尽管批量插入似乎有效,但我在完成后仍然会收到异常:
[b,c,d]
堆栈跟踪
An exception of type 'System.IO.EndOfStreamException' occurred in Raven.Client.Lightweight.dll but was not handled in user code
Additional information: Attempted to read past the end of the stream.
这是我的代码:
at Raven.Client.Connection.ObservableLineStream.<Start>b__1(Task`1 task) in c:\Builds\RavenDB-Stable-3.0\Raven.Client.Lightweight\Connection\ObservableLineStream.cs:line 39
at System.Threading.Tasks.ContinuationTaskFromResultTask`1.InnerInvoke()
at System.Threading.Tasks.Task.Execute()
奇怪的是数据是被写入数据库(我可以在数据库浏览器中查看),但是我的代码中没有捕获异常 - 它被标记为尽管有 static void Main(string[] args)
{
try
{
using (var store = new DocumentStore {
Url = "http://localhost:8080/",
DefaultDatabase = "Northwind" })
{
store.Initialize();
int total = 10000;
using (var bulkInsert = store.BulkInsert())
{
for (int i = 0; i < total; i++){
bulkInsert.Store(new Employee{
FirstName = "FirstName #" + i,
LastName = "LastName #" + i});
}
}
}
}
catch (Exception ex)
{
Console.WriteLine(ex);
}
finally
{
Console.ReadLine();
}
}
。
我对于为什么会发生这种情况感到沮丧,更重要的是,我如何能够阻止它。有人有什么想法吗?
答案 0 :(得分:2)
该异常来自我们用于批量插入的手表。完成后,我们关闭手表,抛出异常。 它在内部处理,不应对您的应用程序产生任何影响