RavenDB IDocumentStoreListener BeforeStore返回false实体仍然保存

时间:2013-12-24 17:43:35

标签: ravendb

根据RavenDB document,当BeforeStore()返回false时,实体实例不应更新。

  

无论实体实例被修改了什么,都要求我们重新序列化它。   返回true会强制重新序列化实体,返回false会   表示在当前的SaveChanges调用中将忽略对entityInstance的任何更改。

我已经测试过返回truefalse,没有区别。返回false不会停止将实体保存到数据库。

这是我的听众:

public bool BeforeStore(string key, object entityInstance, RavenJObject metadata, RavenJObject original)
{
    if (entityInstance is Person)
    {
        var person = (Person)entityInstance;
        person.Firstname = "Tom"; // used be John
        return false;
    }
}

事实证明这个人的名字改为" Tom"即使它返回false。 我错过了什么吗?

1 个答案:

答案 0 :(得分:2)

请重新阅读文档。返回值只表示是否更改了IDocumentStoreListener中的文档。