Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.
Menu Docs

Versão do provedor de atualização

Nesta seção, você pode identificar as alterações essenciais que deve fazer no aplicação ao atualizar o provedor para uma nova versão.

Antes de atualizar, execute as seguintes ações:

  • Ensure the new version is compatible with the MongoDB Server version your application connects to and the .NET version your application runs on. See the Compatibility page for this information.

  • Resolva quaisquer alterações significativas entre a versão atual do fornecedor que seu aplicação está usando e a versão de atualização planejada na seção Alterações significativas.

Uma alteração interruptiva significativa é uma modificação de uma convenção ou comportamento a partir de uma versão específica do provedor. Esse tipo de alteração pode impedir que seu aplicação funcione corretamente se não for resolvido antes de atualizar o fornecedor.

As mudanças significativas nesta seção são categorizadas pela versão do provedor que as introduziram. Ao atualizar as versões do fornecedor, resolva todas as alterações significativas entre a versão atual e a atualizada. Por exemplo, se você estiver atualizando o provedor da v8.0 para a v8.5, resolva todas as alterações significativas da versão posterior à v8.0, incluindo qualquer um listado em v8.5.

A versão 9.0.0 do EF Core Provider inclui as mesmas alterações de ruptura que a versão 8.3.0 do EF Core Provider.

For more information about the breaking changes in version 9.0.0 and how to address them, see the Version 8.3.0 Breaking Changes section.

A versão 8.3.0 do EF Core Provider introduz uma alteração interruptiva que corrige o manuseio de propriedades anuláveis configuradas com uma representação BSON alternativa. Em versões anteriores, as configurações definidas pelo atributo [BsonRepresentation] ou pela API fluente HasBsonRepresentation() não eram aplicadas.

Você pode tomar ação para resolver essa discrepância de duas maneiras:

  • Se o uso da representação BSON alternativa não for crítico, remova a configuração do aplicação antes de iniciar.

  • Alternativamente, você pode atualizar os elementos afetados para a nova representação. Como parte do processo de atualização, use o método updateMany para cada collection do MongoDB afetada para reescrever quaisquer propriedades anuláveis ou elementos afetados na representação BSON desejada usando a operação $convert.

    Por exemplo, você pode converter um elemento dateOfBirth em uma coleção denominada people de um BSON date para BSON int como mostrado no seguinte código:

    db.people.updateMany(
    { dateOfBirth: {$type: "date" } },
    [
    { $set: {
    dateOfBirth:
    { $convert:
    { input: "$dateOfBirth",
    to: "int",
    onNull: null
    }
    }
    }
    }
    ]
    )

Version 8.2.0 of the EF Core Provider does not directly introduce any breaking changes. However, the underlying .NET/C# Driver introduces many potentially breaking changes in the v3.0 release, which might affect your application. To learn more about the breaking changes in v3.0 of the .NET/C# Driver, see the Upgrade to Version 3.0 guide in the .NET/C# Driver documentation.

  • Atualizou o EF Core Provider para executar todas as alterações como transações MongoDB . Se o seu aplicação usar o MongoDB Server anterior à v5.0, ou não for executado em um conjunto de réplicas, você deverá fazer as seguintes alterações no seu aplicação:

    • Se seu aplicação estiver configurado para uma versão do MongoDB Server anterior à v5.0, você deve atualizar para o MongoDB Server v5.0 ou posterior.

    • If your application runs on a standalone server, you must reconfigure your standalone server to a single-instance replica set. To learn more about how to reconfigure your standalone server, see Convert a Standalone Self-Managed mongod to a Replica Set in the MongoDB Server manual.

    • Se seu aplicação for executado em um ambiente de contêiner, alterne para um contêiner de conjunto de réplicas de instância única, se houver um disponível.

    Para evitar problemas de snapshots durante as transações, chame o método EnsureCreated() ou EnsureCreatedAsync() durante a inicialização do aplicação , em vez de criar a coleção ou o banco de dados de dados implicitamente.

    Observação

    A chamada do EnsureCreated() EnsureCreatedAsync() método ou gera um erro se o seu aplicação estiver sendo executado em um cluster compartilhado . Os aplicativos executados em clusters gratuitos e compartilhados não devem chamar esses métodos.

    Se você não quiser garantir uma simultaneidade otimista com as transações, poderá desativar as transações automáticas Database.AutoTransactionBehavior = AutoTrasactionBehavior.Never definindo DbContext na sua subclasse durante a configuração do aplicação .

  • O formato de armazenamento GUID padrão foi alterado do formato CSharpLegacy binário para o formato Standard . Se seu banco de dados de dados contiver GUIDs existentes que não estejam no formato Standard , recomendamos convertê-los no formato Standard .

  • O CamelCaseElementNameConvention converte as letras maiúsculas e minúsculas de entidades de propriedade com base no nome da propriedade em vez do nome da classe . Se seu aplicação usa o CamelCaseElementNameConvention, as letras maiúsculas e minúsculas dos dados podem mudar.

Para obter mais informações sobre as alterações significativas nesta versão, consulte a seção Alterações significativas do repositório do provedor no Github.