DocumentStore.DatabaseCommands.PutAttachment无声地失败

时间:2014-06-27 15:13:55

标签: c# ravendb

根据RavenDB Attachment docsRavenDB Attachments - Functionality how to do?中的示例,我正在尝试使用以下代码向Raven实例添加附件:

foreach (var currentDoc in docsToStore) {
  byte[] buff = ReadBytesFromFile(currentDoc.FilePath);
  var attachmentId = "attachedpages/" + attachmentCounter;
  var stream = new MemoryStream(buff);

  documentStore.DatabaseCommands.PutAttachment(attachmentId, null, stream, null);
  currentDoc.Attachments.Add(attachmentId);
  session.Store(currentDoc);  //Add the new document to Raven
}
session.saveChanges();

我查看了调试器以确认MemoryStream具有我期望的数据。我还在管理工作室中看到了对currentDoc的引用。但是,http://localhost:8080/static/?start=0&pagesize=128只返回一个空数组。

我需要采取另一个步骤来保存附件吗?

2 个答案:

答案 0 :(得分:2)

问题是documentStore.DatabaseCommands将为默认数据库返回db命令。

您可能需要这样做:

documentStore.DatabaseCommands.ForDatabase("Mydb").PutAttachment

答案 1 :(得分:0)

问题是http://localhost:8080/static/?start=0&pagesize=128没有显示我的附件。当我用以下任何一个寻找它们时:

documentStore.DatabaseCommands.GetAttachmentHeadersStartingWith("", 0, 128);

documentStore.DatabaseCommands.ForDatabase("Mydb")
    .GetAttachmentHeadersStartingWith("", 0, 128);

然后我看到了我一直试图保存的所有附件。