我正在努力在另一个API框架内将数据保存到MongoDB。我使用MongoDB C#驱动程序,MongoDB.Driver版本1.10.0.62。我的业务对象进入MongoDB的模型是:
public class CommentEntity : EntityIdentity
{
[BsonId(IdGenerator = typeof(GuidGenerator))]
public Guid CommentId
{
get;
set;
}
public string FullName
{
get;
set;
}
public string Message
{
get;
set;
}
}
在这种情况下,EntityIdentity
是一个我必须继承的抽象类,因为我使用的框架和EntityIdentity
碰巧已经有Id
属性。由于Mongo默认使用Id
作为其主要标识符,因此CommentId
带[BsonId]
注释Id
。 Mongo仍然试图从继承的抽象类中选择BsonClassMap.RegisterClassMap<CommentEntity>(comment =>
{
comment.AutoMap();
comment.UnmapMember(c => c.Id);
});
,所以我试图像这样取消映射:
Sitecore.Services.Client
我得到的错误表明Mongo无法取消映射继承的成员:
memberInfo参数必须是针对类CommentEntity,但适用于类EntityIdentity。
我怎样才能做到这一点?
对于完整的上下文,我使用Sitecore.Services.Core
和@Html.EditorFor(model => model.Description,
new { htmlAttributes = new { @class = "form-control" }, autofocus = "" })
作为我的API框架。