RavenDB changes metadata “Raven-Entity-Name”

2019-02-13 21:04发布

问题:

I noticed that when I add a document to RavenDB and see the "Raven-Entity-Name" metadata it makes it plural. E.g. if my model name was Product it changes it to Products. Why such kind for behavior?

If I have create an index I am forced to use docs.Products

回答1:

It's part of the philosophy of RavenDB to do convention over configuration, so it does this by default.

But you can override it if you want to, you can do something like this:

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

See this thread on the RavenDB discussion group for more info