我有以下代码,我创建新对象并尝试保存到raven数据库。 ...
{
foreach (var url in urls)
{
MyUrl u = new MyUrl {
Id = url.Id,
Url = url.Url
};
urlsCollection.Add(u);
retrievedUrl = new RetrievedUrl {
Id = url.Id,
Url = url.Url
};
RavenSession.Store(retrievedUrl); //exception is thrown
RavenSession.SaveChanges();
}
我正在
Raven.Client.Exceptions.NonUniqueObjectException
on RavenSession.Store(retrievedUrl);
带有以下异常消息
An exception of type 'Raven.Client.Exceptions.NonUniqueObjectException'
occurred in Raven.Client.Lightweight.dll but was not handled in user code
Additional information: Attempted to associate a different object
with id 'RetrievedUrl/361'.
答案 0 :(得分:2)
您似乎正在尝试使用相同的ID保存(至少)两个不同的对象,这是不可能的。 RavenDB在存储新文档时会自动创建唯一ID,但是,如果您明确定义了文档ID,则会使用它。 saving new document in raven中的更多信息。
答案 1 :(得分:0)
这意味着您在会话中已经有一个具有相同ID的不同对象。对我来说,解决方法是使用新会话。或者,您可以按照Update Document with external object
复制值