Saltar al contenido

MongoDB C# Driver – Ignorar campos en enlace

Esta es la respuesta más completa que encomtrarás aportar, pero obsérvala detenidamente y analiza si se puede adaptar a tu proyecto.

Solución:

Sí. Solo decora tu UserModel clase con el BsonIgnoreExtraElements attribute:

[BsonIgnoreExtraElements]
public class UserModel

    public ObjectId id  get; set; 
    public string Email  get; set; 

Como sugiere el nombre, el controlador ignoraría cualquier campo adicional en lugar de lanzar una excepción. Más información aquí – Ignorar elementos adicionales.

Otra posible solución es registrar una convención para esto.

De esta manera, no tenemos que anotar todas las clases con [BsonIgnoreExtraElements].

En algún lugar al crear el cliente mongo, configure lo siguiente:

        var pack = new ConventionPack();
        pack.Add(new IgnoreExtraElementsConvention(true));
        ConventionRegistry.Register("My Solution Conventions", pack, t => true);

Sí. Otra forma (en lugar de editar su clase de modelo) es usar RegisterClassMap con SetIgnoreExtraElements.

En su caso, simplemente agregue este código cuando inicialice su controlador:

BsonClassMap.RegisterClassMap(cm =>

     cm.AutoMap();
     cm.SetIgnoreExtraElements(true);
);

Puede leer más sobre cómo ignorar elementos adicionales usando el mapeo de clases aquí – Ignorar elementos adicionales.

Nos puedes añadir valor a nuestro contenido informacional tributando tu experiencia en las explicaciones.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *