0

保存時に重複キーの例外が発生する理由がわかりません。保存のポイントは、ある場合は更新し、ない場合は挿入することだと思いました。これがエラーです。

WriteConcern はエラー「E11000 duplicate key error index: cms.BaseVariables.$ id dup key: { : "8f69cb40ab3568957c237ef360d29964" }」を検出しました。(応答は { "err" : "E11000 duplicate key error index: cms.BaseVariables.$ id dup key: { : \"8f69cb40ab3568957c237ef360d29964\" }", "code" : 11000, "n" : 0, "connectionId" : 6969、「OK」: 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)

例外...

ここに画像の説明を入力

4

1 に答える 1