Overview
En esta sección, puede identificar los cambios esenciales que debe realizar en su aplicación cuando actualice su proveedor a una nueva versión.
Antes de actualizar, realice las siguientes acciones:
Asegúrese de que la nueva versión sea compatible con la versión de MongoDB Server a la que se conecta su aplicación y con la versión de .NET en la que se ejecuta. Consulte Página de compatibilidad para esta información.
Resuelve cualquier cambio disruptivo entre la versión actual del proveedor que utiliza tu aplicación y la versión de actualización planificada en la sección Cambios disruptivos.
Cambios radicales
Un cambio disruptivo es una modificación de una convención o comportamiento que se inicia en una versión específica del proveedor. Este tipo de cambio podría impedir el correcto funcionamiento de la aplicación si no se soluciona antes de actualizar el proveedor.
Los cambios importantes de esta sección se clasifican según la versión del proveedor que los introdujo. Al actualizar las versiones del proveedor, aborde todos los cambios importantes entre la versión actual y la de actualización. Por ejemplo, si actualiza el proveedor8.0 de8.5 la versión 7600 a la 7800, aborde todos los cambios importantes de la versión posterior a la8.0 8000, incluidos los que aparecen en la versión8.5 8200.
Cambios importantes en la versión 9.0.0
La versión 9.0.0 del EF Core Provider incluye los mismos cambios importantes que la versión 8.3.0 del EF Core Provider.
Para obtener más información sobre los cambios importantes en la versión 9.0.0 y cómo abordarlos, consulte la sección Cambios importantes en 8.30.0 la versión.
Cambios importantes en la versión 8.30.0
La versión 8.3.0 del proveedor principal de EF introduce un cambio importante que corrige el manejo de propiedades que aceptan valores NULL configuradas con una representación BSON alternativa. En versiones anteriores, las configuraciones establecidas por
[BsonRepresentation] No se aplicaron el atributo o la API fluida HasBsonRepresentation().
Puede tomar medidas para abordar esta discrepancia de una de dos maneras:
Si el uso de la representación BSON alternativa no es fundamental, elimine la configuración de su aplicación antes de que se inicie.
Como alternativa, puede actualizar los elementos afectados a la nueva representación. Como parte del proceso de actualización, utilice el método
updateManypara cada colección de MongoDB afectada a fin de reescribir cualquier propiedad o elemento que acepte valores NULL en la representación BSON deseada mediante la operación$convert.Por ejemplo, puede convertir un elemento
dateOfBirthen una colección llamadapeoplede un BSONdatea un BSONintcomo se muestra en el siguiente código:db.people.updateMany( { dateOfBirth: {$type: "date" } }, [ { $set: { dateOfBirth: { $convert: { input: "$dateOfBirth", to: "int", onNull: null } } } } ] )
Cambios importantes en la versión 8.2.0
La versión 8.2.0 del proveedor de EF Core no introduce directamente cambios importantes. Sin embargo, el controlador .NET/C# subyacente introduce muchos cambios potencialmente importantes en la versión3.0 v, que podrían afectar a su aplicación. Para obtener más información sobre los cambios importantes en la versión v3.0 del controlador .NET/C#, consulte la guía "Actualizar a 3 la versión. "0 en la documentación del controlador .NET/C#.
Cambios importantes en la versión 8.1.0
Se actualizó el proveedor principal de EF para que ejecute todos los cambios como transacciones de MongoDB. Si su aplicación usa MongoDB Server anterior a la versión 76005.0 o no se ejecuta en un conjunto de réplicas, debe realizar los siguientes cambios:
Si tu aplicación está configurada para una versión anterior a MongoDB Server v5.0, debes actualizar a MongoDB Server v5.0 o posterior.
Si su aplicación se ejecuta en un servidor independiente, debe reconfigurarlo para convertirlo en un conjunto de réplicas de instancia única. Para obtener más información sobre cómo reconfigurar su servidor independiente, consulte "Convertir un mongod autogestionado independiente en un conjunto de réplicas" en el manual del servidor MongoDB.
Si su aplicación se ejecuta en un entorno de contenedores, cambie a un contenedor de conjunto de réplicas de instancia única si hay uno disponible.
Para evitar problemas de instantáneas durante las transacciones, llame al método
EnsureCreated()oEnsureCreatedAsync()durante el inicio de su aplicación, en lugar de crear la colección o la base de datos implícitamente.Nota
Llamar al
EnsureCreated()métodoEnsureCreatedAsync()o genera un error si la aplicación se ejecuta en un clúster compartido. Las aplicaciones que se ejecutan en clústeres libres y compartidos no deben llamar a estos métodos.Si no desea garantizar una concurrencia optimista con las transacciones, puede deshabilitar las transacciones automáticas configurando
Database.AutoTransactionBehavior = AutoTrasactionBehavior.NeverDbContexten su subclase durante la configuración de su aplicación.Se cambió el formato de almacenamiento predeterminado de GUID de formato binario
CSharpLegacya formatoStandard. Si su base de datos contiene GUID que no están en formatoStandard, le recomendamos convertirlos a formatoStandard.El
CamelCaseElementNameConventionconvierte la mayúscula y minúscula de las entidades propias según el nombre de su propiedad en lugar del nombre de su clase. Si su aplicación usa elCamelCaseElementNameConvention, la mayúscula y minúscula de sus datos podría cambiar.
Para obtener más información sobre los cambios importantes en esta versión, consulte la sección Cambios importantes del repositorio del proveedor en GitHub.