Mongo C # Driver 2.7 - _t дискриминатор отсутствует - PullRequest
0 голосов
/ 14 октября 2018

после обновления до версии 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] на базеучебный класс.Теперь это не так.У кого-нибудь есть идеи, почему?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...