2010-09-03 15 views
5

Me di cuenta de que cuando agrego un documento a RavenDB y veo los metadatos "Raven-Entity-Name", se vuelve plural. P.ej. si el nombre de mi modelo era Product, lo cambia a Products. ¿Por qué tipo de comportamiento?RavenDB cambia los metadatos "Raven-Entity-Name"

Si tengo que crear un índice estoy obligado a utilizar docs.Products

Respuesta

12

Es parte de la filosofía de RavenDB hacer convención sobre configuración, por lo que esta por defecto.

Pero puede anularla si se quiere, se puede hacer algo como esto:

_documentStore = new DocumentStore { Url = "http://localhost:8080/" }; 
_documentStore.Conventions.FindTypeTagName = t => 
{ 
    if (t.Name == "MyClass") 
     return "MyClassBlahBlah"; 
    else 
     return Raven.Client.Util.Inflector.Pluralize(t.Name); 
}; 

_documentStore.Initialize(); 

Ver this thread en el grupo de discusión RavenDB para obtener más información

+0

lo que esto significa para cada modelo i tendrá para escribir el código ¿Hay alguna configuración de punto único por la cual deja de pluralizar para la aplicación o ravendb sí mismo? –

+3

@ajay_whiz, Matt dice todo lo que necesita para dejar de pluralizar. Pruebe: _documentStore.Conventions.FindTypeTagName = t => t.Name; –

+0

¡Gracias por esto! La solución también ayuda cuando intenta guardar un documento con un Id no estándar después de cargarlo y cambiarlo. –