根据RavenDB document,当BeforeStore()
返回false
时,实体实例不应更新。
无论实体实例被修改了什么,都要求我们重新序列化它。 返回true会强制重新序列化实体,返回false会 表示在当前的SaveChanges调用中将忽略对entityInstance的任何更改。
我已经测试过返回true
和false
,没有区别。返回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。 我错过了什么吗?
答案 0 :(得分:2)
请重新阅读文档。返回值只表示你是否更改了IDocumentStoreListener
中的文档。