2012-01-07 15 views
5

Tengo un objeto que tiene una propiedad pública llamada Id. Cuando almaceno el objeto, me gustaría que el Id forme parte de los datos y no se convierta en el Id del documento como lo hace actualmente. Al crear el almacén de documentos, solo configuro la cadena de conexión.Raven DB - Haga que genere automáticamente su propia clave

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 
} 

Así que, o yo quiero que generará un número aleatorio o tienen tanto los datos como la documentId siendo la propiedad ID de clase A.

EDIT:

Así que dos posibilidades: 1 . Documento Id = Id y la

Data Section contains: 
{ 
    data //sorry if the notation is not correct, doing it off of memory 
    { 
     Id: [my guid] 
     //other properities 
    } 
} 

O los datos que contienen el ID y la ID de documento = generados al azar por raven

+1

No entiendo lo que está tratando de hacer aquí. ¿Cómo debería ser la identificación? ¿Cómo debería verse el documento? –

+0

Consulte Edición para obtener información actualizada –

Respuesta

8

Puede usar esta opción si desea Id ser una propiedad que permite controlar por su cuenta y ha cuervo utilizar otra propiedad como el identificador de documentos en su lugar:

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"; 
}; 
+0

¿Este método guardará también la propiedad Nombre en la sección Datos del documento? –

+0

Claro que sí. Brad, es muy fácil probar esas cosas si tienes nuget. –

+0

Awesome acaba de tener la oportunidad de probarlo y funciona perfectamente –

Cuestiones relacionadas