2010-09-03 8 views
5

Ich bemerkte, dass wenn ich ein Dokument zu RavenDB hinzufüge und die "Raven-Entity-Name" -Metadaten sehe, es im Plural macht. Z.B. Wenn mein Modellname Product war, wird es in Products geändert. Warum solche Art für Verhalten?RavenDB ändert Metadaten "Raven-Entity-Name"

Wenn ich einen Index erstellen bin ich gezwungen, docs.Products

Antwort

12

zu verwenden Es ist ein Teil der Philosophie des RavenDB Konvention über Konfiguration zu tun, so tut es dies standardmäßig.

Aber Sie können es überschreiben, wenn Sie möchten, können Sie etwas tun können:

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

this thread auf der RavenDB Diskussionsgruppe wird für weitere Informationen

+0

so bedeutet dies für jedes Modell Siehe i um Code zu schreiben. Gibt es eine Einzelpunktkonfiguration, bei der die Pluralisierung für die Anwendung oder für ravendb selbst aufhört? –

+3

@ajay_whiz, Matt sagt alles, was Sie brauchen, um Pluralisierung zu stoppen. Versuchen Sie: _documentStore.Conventions.FindTypeTagName = t => t.Name; –

+0

Danke dafür! Die Lösung hilft auch beim Versuch, ein Dokument mit einer nicht standardmäßigen ID nach dem Laden und Ändern zu speichern. –