我不明白为什么我在保存时收到重复键异常。我认为保存的目的是如果存在则更新,如果不存在则插入。这是错误。
WriteConcern 检测到错误'E11000 重复键错误索引:cms.BaseVariables.$ id dup key: { : "8f69cb40ab3568957c237ef360d29964" }'。(响应为 {“err”:“E11000 重复键错误索引:cms.BaseVariables.$ id重复键 :{:\”8f69cb40ab3568957c237ef360d29964\“}”,“code”:11000,“n”:0,“connectionId”: 6969,“好的”:1.0})。
是的,没错,8f69cb40ab3568957c237ef360d29964 已经存在了。那么为什么不只是更新它呢?
我在对象上有以下类映射注册和 ID 属性...
BsonClassMap.RegisterClassMap<BaseVariableGroup>(cm =>
{
cm.AutoMap();
cm.SetIdMember(cm.GetMemberMap(c => c.Id));
cm.IdMemberMap.SetIdGenerator(StringObjectIdGenerator.Instance);
});
public string Id
{
get { return _id; }
set
{
_id = value;
_id = Md5Cryptography.Hash(string.Concat(SportId, CompetitionId, Round));
}
}
这就是我所说的保存...
_collection.Save(baseVariableGroup)
例外...