我需要在一个现有类(MyClass)上定义一个复合键(_id),该键由2个类属性组成:Id和Version。 另外,由于我无法更改类代码,因此必须通过BsonClassMap API(而不是属性属性)来完成。
我尝试过类似的操作,但是对SetIdMember()的第二次调用只会覆盖第一个调用,并且不会将其添加到键中:
BsonClassMap.RegisterClassMap<MyClass>(cm =>
{
cm.AutoMap();
cm.SetIgnoreExtraElements(true);
cm.SetIdMember(cm.GetMemberMap(t => t.Id));
cm.SetIdMember(cm.GetMemberMap(t => t.Version)); // after this line, the ID seems to be just Version and not Id+Version
});