我目前有一个具有名为Id的公共属性的对象。当我存储对象时,我希望Id成为数据的一部分,而不是像目前那样成为文档ID。创建文档存储时,我只设置连接字符串。
using (var session = documentStore.OpenSession())
{
session.Store(a);
session.SaveChanges();
}
a can be thought of an object as:
public class A
{
public Guid Id { get; set; }
//other properties
}
所以要么我想要它生成一个随机Id,要么让数据和documentId都是A类的Id属性。
编辑:
两种可能性: 1.文件ID = Id和
Data Section contains:
{
data //sorry if the notation is not correct, doing it off of memory
{
Id: [my guid]
//other properities
}
}
或者包含Id和Document ID的数据=由raven随机生成
答案 0 :(得分:8)
如果您希望Id
成为您自己控制的属性并且乌鸦使用其他属性作为文档ID,则可以使用此方法:
public class User
{
public string DocumentId { get; set; }
public Guid Id { get; set; }
public string Name { get; set; }
public User()
{
Id = Guid.NewGuid();
}
}
documentStore.Conventions.FindIdentityProperty = prop =>
{
if (prop.DeclaringType == typeof(User))
return prop.Name == "DocumentId";
return prop.Name == "Id";
};