после обновления до версии 2.7 официального драйвера MongoDB C # мой код, похоже, перестал работать.У меня есть класс Nofitication с 2 производными классами: NewFriendshipRequestNotification и FriendshipRequestAcceptedNotification.Код следующий:
[CollectionName("Notification")]
[BsonKnownTypes(typeof(FriendshipRequestAcceptedNotification), typeof(NewFriendshipRequestNotification))]
public class Notification : MongoEntity
{
[BsonRequired]
[BsonRepresentation(BsonType.String)]
public NotificationType Type { get; protected set; }
[BsonRequired]
public string TargetUserId { get; set; }
[BsonRequired]
public string Text { get; set; }
[BsonRequired]
public bool IsRead { get; set; } = false;
[BsonIgnoreIfNull]
public DateTime? ReadTimestamp { get; set; }
public Notification()
{
Type = NotificationType.Generic;
}
}
public class NewFriendshipRequestNotification : Notification
{
[BsonRequired]
public string RequestingUserId { get; set; }
[BsonRequired]
public string RequestingUsername { get; set; }
public NewFriendshipRequestNotification()
{
Type = NotificationType.NewFriendshipRequest;
}
}
public class FriendshipRequestAcceptedNotification : Notification
{
[BsonRequired]
public string AcceptingUserId { get; set; }
[BsonRequired]
public string AcceptingUsername { get; set; }
public FriendshipRequestAcceptedNotification()
{
Type = NotificationType.FriendshipRequestAccepted;
}
}
Перед этим обновлением, когда я вставил уведомление NewFriendshipRequestNotification, документ в коллекции уведомлений имел поле дискриминатора "_t": "NewFriendshipRequestNotification"
, благодаря атрибуту [BsonKnownTypes]
на базеучебный класс.Теперь это не так.У кого-нибудь есть идеи, почему?