2010-09-03 11 views
5

Ho notato che quando aggiungo un documento a RavenDB e vedo i metadati "Raven-Entity-Name" lo rende plurale. Per esempio. se il nome del mio modello era Product, lo cambia in Products. Perché questo tipo di comportamento?RavenDB modifica i metadati "Raven-Entity-Name"

Se devo creare un indice sono costretto ad utilizzare docs.Products

risposta

12

Fa parte della filosofia di RavenDB fare convenzione sulla configurazione, in modo che questo per impostazione predefinita.

Ma è possibile ignorare che, se si vuole, si può fare qualcosa di simile:

_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(); 

Vedi this thread sul gruppo di discussione RavenDB per ulteriori informazioni

+0

quindi questo significa che per ogni modello dovrò scrivere codice Esiste una configurazione a punto singolo per cui smette di pluralizzare per l'applicazione o ravendb stesso? –

+3

@ajay_whiz, Matt dice tutto ciò di cui hai bisogno per smettere di pluralizzare. Prova: _documentStore.Conventions.FindTypeTagName = t => t.Name; –

+0

Grazie per questo! La soluzione è utile anche quando stai cercando di salvare un documento con un ID non standard dopo averlo caricato e modificato. –