根据RavenDB Attachment docs和RavenDB 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
只返回一个空数组。
我需要采取另一个步骤来保存附件吗?
答案 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);
然后我看到了我一直试图保存的所有附件。