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.