【发布时间】:2016-12-16 16:33:21
【问题描述】:
我正在使用AspNetCore.Identity.MongoDB nuget package 将一些 Asp.Net Identity 功能导入my project。
然后我想扩展存在于我最初为我的项目创建的用户类型的MongoIdentityUser,因此我尝试从该类继承并创建以MongoIdentityUser 作为其基类的my User Class。
如果我尝试查询我的集合,其中存储了一个 MongoIdentityUser 并尝试将其反序列化为 MongoIdentityUser,我会得到那个项目,所以成功。
但是,如果我尝试将其反序列化为 My User,这只是 MongoDBUser 的继承类,我会收到以下异常:
不可能扩展我想要的课程吗?而且这个异常也没什么用,不知道为什么它不给我一个更详细的异常
json 对象是这样的
{
"_id": "dat@email.com",
"userName": "dat@email.com",
"normalizedUserName": "dat@email.com",
"email": {
"value": "dat@email.com",
"confirmationRecord": null,
"normalizedValue": "dat@email.com"
},
"phoneNumber": null,
"passwordHash": "xxx",
"securityStamp": "87242bb7-2a09-4905-ba61",
"isTwoFactorEnabled": false,
"claims": [],
"logins": [],
"accessFailedCount": 0,
"isLockoutEnabled": true,
"lockoutEndDate": null,
"createdOn": {
"instant": {
"$date": "2016-11-13T17:05:59.487Z"
}
},
"deletedOn": null
}
【问题讨论】:
-
恕我直言,您忘记使用
BsonClassMap.LookupClassMap(typeof(User));) 之类的方式注册派生类。 -
@shA.t 但不会只给我 MongoIdentityUser 属性或 Users 属性而不是两个类属性吗?
-
这不是关于属性,而是关于 MongoDB 可以基于它们序列化的类 this for more ;)。
-
没有帮助,通常我也会得到一个映射错误,但是驱动程序中的这个空引用异常似乎是错误的
-
异常表示反序列化的结果为空,你不能为空对象调用
.ToList()方法,Bson序列化器需要知道你所有的类;)。
标签: c# mongodb asp.net-core mongodb-.net-driver