{"id":17073,"date":"2025-04-24T11:51:03","date_gmt":"2025-04-24T18:51:03","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=17073"},"modified":"2025-04-24T11:51:03","modified_gmt":"2025-04-24T18:51:03","slug":"ef-core-provider-for-couchbase-general-availability","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/pt\/ef-core-provider-for-couchbase-general-availability\/","title":{"rendered":"Anunciando a disponibilidade geral do provedor principal do Couchbase EF"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">O <\/span><a href=\"https:\/\/github.com\/couchbaselabs\/couchbase-efcore-provider\"><b>Provedor principal do Couchbase EF<\/b><span style=\"font-weight: 400;\"> agora \u00e9 <\/span><b>geralmente dispon\u00edvel<\/b><\/a><span style=\"font-weight: 400;\">. Esta vers\u00e3o traz o poder do Entity Framework Core para o Couchbase, permitindo que os desenvolvedores de .NET trabalhem com o Couchbase usando padr\u00f5es familiares do EF Core.<\/span><\/p>\n<h2>O que \u00e9 o provedor Couchbase EF Core?<\/h2>\n<p><span style=\"font-weight: 400;\">O Entity Framework Core (EF Core) \u00e9 um popular O\/RM que simplifica o acesso ao banco de dados para aplicativos .NET. Ele permite que os desenvolvedores trabalhem com dados usando objetos C# e consultas LINQ em vez de escrever consultas brutas ao banco de dados. O EF Core permite a integra\u00e7\u00e3o com v\u00e1rios bancos de dados, fornecendo rastreamento autom\u00e1tico de altera\u00e7\u00f5es, transa\u00e7\u00f5es e uma API DbContext familiar. \u00c9 uma interface familiar que os desenvolvedores podem usar para economizar tempo e se integrar a muitas estruturas e bibliotecas adjacentes a bancos de dados.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">O <\/span><b>Provedor principal do Couchbase EF<\/b><span style=\"font-weight: 400;\"> permite que os desenvolvedores usem o Entity Framework Core com <\/span><b>Servidor Couchbase<\/b><span style=\"font-weight: 400;\"> e <\/span><a href=\"https:\/\/cloud.couchbase.com\/sign-up\"><b>Couchbase Capell<\/b><b>a<\/b><\/a><span style=\"font-weight: 400;\"> (agora dispon\u00edvel com um n\u00edvel gratuito perp\u00e9tuo). Com esse provedor, voc\u00ea pode trabalhar com documentos do Couchbase como se fossem entidades relacionais, usando consultas Linq, DbContext e controle de altera\u00e7\u00f5es.<\/span><\/p>\n<h2>Primeiros passos<\/h2>\n<p><span style=\"font-weight: 400;\">Para instalar o provedor do Couchbase EF Core, adicione o arquivo <\/span><a href=\"https:\/\/www.nuget.org\/packages\/Couchbase.EntityFrameworkCore\"><span style=\"font-weight: 400;\">Pacote NuGet<\/span><\/a><span style=\"font-weight: 400;\">:<\/span><\/p>\n<pre class=\"nums:false lang:ps decode:true\"># .NET CLI\r\ndotnet add package Couchbase.EntityFrameworkCore\r\n\r\n# Ou usando o Package Manager\r\nInstalar o pacote Couchbase.EntityFrameworkCore<\/pre>\n<h3>Exemplo: usando o EF Core com o Couchbase<\/h3>\n<p><span style=\"font-weight: 400;\">Aqui est\u00e1 um exemplo simples de \"carrinho de compras\" de como configurar e usar o <\/span><b>Provedor principal do Couchbase EF<\/b><span style=\"font-weight: 400;\"> com um modelo de carrinho de compras.<\/span><\/p>\n<h4>Definir seus modelos de entidade<\/h4>\n<pre class=\"nums:false wrap:true lang:c# decode:true\">usando Couchbase;\r\nusing Couchbase.EntityFrameworkCore;\r\nusing Couchbase.EntityFrameworkCore.Extensions; using Couchbase.EntityFrameworkCore;\r\nusing Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;\r\nusing Microsoft.Extensions.Logging;\r\nusing NLog.Extensions.Logging;\r\nusing ILoggerFactory = Microsoft.Extensions.Logging.ILoggerFactory;\r\n\r\npublic class Cart\r\n{\r\n    public string CartId { get; set; }\r\n    public DateTimeOffset Created { get; set; }\r\n    public List Items { get; set; }\r\n}\r\n\r\npublic class Item\r\n{\r\n    public string ItemId { get; set; }\r\n    public string Name { get; set; }\r\n    public uint Quantity { get; set; }\r\n    public decimal Price { get; set; }\r\n}<\/pre>\n<h4>Criar um DbContext para o Couchbase<\/h4>\n<pre class=\"nums:false wrap:true lang:c# decode:true\">classe p\u00fablica CartContext : DbContext\r\n{\r\n    public DbSet Carts { get; set; }\r\n    public DbSet Items { get; set; }\r\n    private static readonly ILoggerFactory LoggerFactory = Microsoft.Extensions.Logging.LoggerFactory.Create(builder =&gt;\r\n    {\r\n        builder.ClearProviders();\r\n        builder.AddNLog();\r\n    });\r\n    protected override void OnConfiguring(DbContextOptionsBuilder options)\r\n    {\r\n        options.UseCouchbase(new ClusterOptions()\r\n                .WithCredentials(\"Administrator\", \"password\")\r\n                .WithConnectionString(\"couchbase:\/\/localhost\")\r\n                .WithLogging(LoggerFactory),\r\n            couchbaseDbContextOptions =&gt;\r\n            {\r\n                couchbaseDbContextOptions.Bucket = \"Shopping\";\r\n                couchbaseDbContextOptions.Scope = \"Ecommerce\";\r\n            });\r\n    }\r\n\r\n    protected override void OnModelCreating(ModelBuilder modelBuilder)\r\n    {\r\n        modelBuilder.Entity().ToCouchbaseCollection(this, \"Carts\");\r\n        modelBuilder.Entity().ToCouchbaseCollection(this, \"Items\");\r\n    }\r\n}<\/pre>\n<p><span style=\"font-weight: 400;\">Esse arranjo pressup\u00f5e que voc\u00ea tenha criado um bucket no Couchbase chamado <em>Compras<\/em>que cont\u00e9m um escopo chamado <em>Com\u00e9rcio eletr\u00f4nico<\/em>que cont\u00e9m cole\u00e7\u00f5es <em>Itens<\/em> e <em>Carrinhos<\/em>.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Observe tamb\u00e9m que o registro em log \u00e9 opcional, mas \u00e9 uma boa ideia ativ\u00e1-lo para ajudar a identificar quaisquer problemas que possam surgir.<\/span><\/p>\n<h4>Inserir e consultar dados<\/h4>\n<pre class=\"nums:false wrap:true lang:c# decode:true\">aguardar usando var db = new CartContext();\r\nvar cart = new Cart\r\n{\r\n    CartId = Guid.NewGuid().ToString(),\r\n    Created = DateTimeOffset.Now,\r\n    Items = new List\r\n    {\r\n        new Item { ItemId = Guid.NewGuid().ToString(), Name = \"Widget\", Price = 0.99M, Quantity = 1},\r\n        new Item { ItemId = Guid.NewGuid().ToString(), Name = \"Foo\", Price = 4.99M, Quantity = 3},\r\n        novo Item { ItemId = Guid.NewGuid().ToString(), Name = \"Baz\", Price = 99.19M, Quantity = 1}\r\n    }\r\n};\r\naguarde db.AddAsync(carrinho);\r\nawait db.SaveChangesAsync();\r\n\r\nvar items = await db.Items.Where(i =&gt; i.Name == \"Foo\").ToListAsync();\r\nforeach (var i in items)\r\n{\r\n    Console.WriteLine(JsonConvert.SerializeObject(i));\r\n}<\/pre>\n<p><span style=\"font-weight: 400;\">Veja um exemplo de como os documentos no Couchbase ficar\u00e3o ap\u00f3s a inser\u00e7\u00e3o:<\/span><\/p>\n<pre class=\"nums:false lang:js decode:true\">Key: 080c210a-34eb-45ea-b9b4-e5c6f8afa4d6\r\n{\r\n  \"CartId\": \"080c210a-34eb-45ea-b9b4-e5c6f8afa4d6\",\r\n  \"Created\": \"2025-03-13T17:16:31.9904224-04:00\"\r\n}\r\nKey acf54397-51c4-4ad7-bf34-d0a42061b662\r\n{\r\n  \"ItemId\": \"acf54397-51c4-4ad7-bf34-d0a42061b662\",\r\n  \"CartId\": \"080c210a-34eb-45ea-b9b4-e5c6f8afa4d6\",\r\n  \"Name\" (Nome): \"Foo\",\r\n  \"Price\": 4.99,\r\n  \"Quantity\" (Quantidade): 3\r\n}\r\nKey a3f25210-97f2-4c95-ad4b-f241dde0d9c3\r\n{\r\n  \"ItemId\": \"a3f25210-97f2-4c95-ad4b-f241dde0d9c3\",\r\n  \"CartId\": \"080c210a-34eb-45ea-b9b4-e5c6f8afa4d6\",\r\n  \"Name\" (Nome): \"Widget\",\r\n  \"Price\": 0.99,\r\n  \"Quantity\" (Quantidade): 1\r\n}\r\n\/\/ ... etc ...<\/pre>\n<h2>O que funciona na vers\u00e3o GA?<\/h2>\n<p><span style=\"font-weight: 400;\">Toda a funcionalidade do EF Core \u00e9 muito, muito grande. Ser capaz de lidar com todas as instru\u00e7\u00f5es Linq poss\u00edveis, por exemplo, \u00e9 quase imposs\u00edvel, mesmo para provedores maduros do EF Core, como o SQL Server. Entretanto, essa vers\u00e3o oferece suporte a muitos recursos essenciais do EF Core, incluindo:<\/span><\/p>\n<p style=\"padding-left: 40px;\"><span style=\"font-weight: 400;\">\u2705 <\/span><b>Suporte a LINQ<\/b><span style=\"font-weight: 400;\"> - Traduz as consultas LINQ para <\/span><b>Couchbase SQL++<\/b><span style=\"font-weight: 400;\">.<br \/>\n<\/span><span style=\"font-weight: 400;\">\u2705 <\/span><b>Opera\u00e7\u00f5es b\u00e1sicas de CRUD<\/b><span style=\"font-weight: 400;\"> - Inserir, atualizar e excluir funcionam como esperado.<br \/>\n<\/span><span style=\"font-weight: 400;\">\u2705 <\/span><b>Controle de altera\u00e7\u00f5es<\/b><span style=\"font-weight: 400;\"> - As entidades s\u00e3o rastreadas para atualiza\u00e7\u00f5es eficientes.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Observe tamb\u00e9m que o uso de m\u00e9todos Async \u00e9 <\/span><b>necess\u00e1rio<\/b><span style=\"font-weight: 400;\">. O SDK .NET do Couchbase \u00e9 totalmente ass\u00edncrono. Se voc\u00ea tentar usar um m\u00e9todo n\u00e3o ass\u00edncrono, receber\u00e1 um erro de tempo de execu\u00e7\u00e3o do tipo <code>O provedor de banco de dados principal do Couchbase EF n\u00e3o oferece suporte a E\/S s\u00edncrona<\/code>.<\/span><\/p>\n<h2>Limita\u00e7\u00f5es conhecidas<\/h2>\n<p><span style=\"font-weight: 400;\">Embora esse seja um marco significativo, <\/span><b>Alguns recursos ainda est\u00e3o em andamento<\/b><span style=\"font-weight: 400;\">incluindo:<\/span><\/p>\n<p style=\"padding-left: 40px;\"><span style=\"font-weight: 400;\">\u274c <\/span><b>Desnormaliza\u00e7\u00e3o<\/b><span style=\"font-weight: 400;\"> - Aninhamento de cole\u00e7\u00f5es dentro de documentos (por exemplo, armazenamento de <\/span><span style=\"font-weight: 400;\">Itens<\/span><span style=\"font-weight: 400;\"> dentro <\/span><span style=\"font-weight: 400;\">Carrinho <\/span><span style=\"font-weight: 400;\">como um \u00fanico documento JSON) ainda n\u00e3o \u00e9 compat\u00edvel.<br \/>\n<\/span><span style=\"font-weight: 400;\">\u274c <\/span><b>Carregamento ansioso<\/b><span style=\"font-weight: 400;\"> - <\/span><span style=\"font-weight: 400;\"><code>.Include()<\/code><\/span><span style=\"font-weight: 400;\"> podem n\u00e3o funcionar como esperado.<br \/>\n<\/span><span style=\"font-weight: 400;\">\u274c <\/span><b>Suporte \u00e0 fun\u00e7\u00e3o SQL++<\/b><span style=\"font-weight: 400;\"> - Algumas fun\u00e7\u00f5es do SQL++, como <\/span><span style=\"font-weight: 400;\">META<\/span><span style=\"font-weight: 400;\">, <\/span><span style=\"font-weight: 400;\">RYOW<\/span><span style=\"font-weight: 400;\">etc., n\u00e3o est\u00e3o totalmente implementados.<br \/>\n<\/span><span style=\"font-weight: 400;\">\u274c <\/span><b>Transa\u00e7\u00f5es <\/b><span style=\"font-weight: 400;\">- Ainda n\u00e3o \u00e9 compat\u00edvel com esta vers\u00e3o.<\/span><\/p>\n<h2>Participe da conversa!<\/h2>\n<p><span style=\"font-weight: 400;\">Queremos seu feedback! Ajude a moldar o futuro do <\/span><b>Provedor principal do Couchbase EF<\/b><span style=\"font-weight: 400;\">:<\/span><\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Fa\u00e7a perguntas e compartilhe experi\u00eancias<\/b><span style=\"font-weight: 400;\"> no<\/span><a href=\"https:\/\/www.couchbase.com\/blog\/pt\/forums\/c\/net-sdk\/6\/\"><span style=\"font-weight: 400;\"> F\u00f3runs do Couchbase .NET<\/span><\/a><span style=\"font-weight: 400;\">.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Converse conosco no Discord<\/b><span style=\"font-weight: 400;\"> -<\/span><a href=\"https:\/\/discord.com\/invite\/K7NPMPGrPk\"><span style=\"font-weight: 400;\"> Participe de nossa comunidade<\/span><\/a><span style=\"font-weight: 400;\">.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Relatar problemas e contribuir<\/b><span style=\"font-weight: 400;\"> em<\/span><a href=\"https:\/\/github.com\/couchbaselabs\/couchbase-efcore-provider\"><span style=\"font-weight: 400;\"> GitHub<\/span><\/a><span style=\"font-weight: 400;\">.<\/span><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h2>O que vem a seguir?<\/h2>\n<p><span style=\"font-weight: 400;\">Esta vers\u00e3o \u00e9 apenas o come\u00e7o! Estamos trabalhando ativamente para desenvolver essa implementa\u00e7\u00e3o do EF Core. <\/span><b>Seu feedback <\/b><span style=\"font-weight: 400;\">ajudar\u00e1 a priorizar a funcionalidade.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Experimente hoje mesmo e diga-nos o que achou. Boa codifica\u00e7\u00e3o!<\/span><\/p>\n<p><br style=\"font-weight: 400;\" \/><br style=\"font-weight: 400;\" \/><\/p>","protected":false},"excerpt":{"rendered":"<p>O provedor Couchbase EF Core j\u00e1 est\u00e1 dispon\u00edvel para todos. Essa vers\u00e3o traz o poder do Entity Framework Core para o Couchbase, permitindo que os desenvolvedores .NET trabalhem com o Couchbase usando padr\u00f5es familiares do EF Core. O que \u00e9 o provedor Couchbase EF Core? Entidade [...]<\/p>","protected":false},"author":71,"featured_media":17074,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1811,1815,2225,1816,2201],"tags":[10108,1806],"ppma_author":[8937],"class_list":["post-17073","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dotnet","category-best-practices-and-tutorials","category-cloud","category-couchbase-server","category-tools-sdks","tag-ef-core","tag-entity-framework"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.1 (Yoast SEO v26.1.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Announcing the General Availability of the Couchbase EF Core Provider<\/title>\n<meta name=\"description\" content=\"The Couchbase EF Core Provider is now generally available, bringing seamless integration between Couchbase and Entity Framework Core.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.couchbase.com\/blog\/pt\/ef-core-provider-for-couchbase-general-availability\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Announcing the General Availability of the Couchbase EF Core Provider\" \/>\n<meta property=\"og:description\" content=\"The Couchbase EF Core Provider is now generally available, bringing seamless integration between Couchbase and Entity Framework Core.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/pt\/ef-core-provider-for-couchbase-general-availability\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2025-04-24T18:51:03+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/04\/blog-ef-core-couchbase.png\" \/>\n\t<meta property=\"og:image:width\" content=\"2400\" \/>\n\t<meta property=\"og:image:height\" content=\"1256\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Matthew Groves\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@mgroves\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Matthew Groves\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/ef-core-provider-for-couchbase-general-availability\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/ef-core-provider-for-couchbase-general-availability\/\"},\"author\":{\"name\":\"Matthew Groves\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/3929663e372020321b0152dc4fa65a58\"},\"headline\":\"Announcing the General Availability of the Couchbase EF Core Provider\",\"datePublished\":\"2025-04-24T18:51:03+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/ef-core-provider-for-couchbase-general-availability\/\"},\"wordCount\":545,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/ef-core-provider-for-couchbase-general-availability\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/04\/blog-ef-core-couchbase.png\",\"keywords\":[\"EF Core\",\"Entity Framework\"],\"articleSection\":[\".NET\",\"Best Practices and Tutorials\",\"Couchbase Capella\",\"Couchbase Server\",\"Tools &amp; SDKs\"],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/ef-core-provider-for-couchbase-general-availability\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/ef-core-provider-for-couchbase-general-availability\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/ef-core-provider-for-couchbase-general-availability\/\",\"name\":\"Announcing the General Availability of the Couchbase EF Core Provider\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/ef-core-provider-for-couchbase-general-availability\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/ef-core-provider-for-couchbase-general-availability\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/04\/blog-ef-core-couchbase.png\",\"datePublished\":\"2025-04-24T18:51:03+00:00\",\"description\":\"The Couchbase EF Core Provider is now generally available, bringing seamless integration between Couchbase and Entity Framework Core.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/ef-core-provider-for-couchbase-general-availability\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/ef-core-provider-for-couchbase-general-availability\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/ef-core-provider-for-couchbase-general-availability\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/04\/blog-ef-core-couchbase.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/04\/blog-ef-core-couchbase.png\",\"width\":2400,\"height\":1256},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/ef-core-provider-for-couchbase-general-availability\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Announcing the General Availability of the Couchbase EF Core Provider\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/3929663e372020321b0152dc4fa65a58\",\"name\":\"Matthew Groves\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/ba51e6aacc53995c323a634e4502ef54\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/70feb1b28a099ad0112b8d21fe1e81e1a4524beed3e20b7f107d5370e85a07ab?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/70feb1b28a099ad0112b8d21fe1e81e1a4524beed3e20b7f107d5370e85a07ab?s=96&d=mm&r=g\",\"caption\":\"Matthew Groves\"},\"description\":\"Matthew D. Groves is a guy who loves to code. It doesn't matter if it's C#, jQuery, or PHP: he'll submit pull requests for anything. He has been coding professionally ever since he wrote a QuickBASIC point-of-sale app for his parent's pizza shop back in the 90s. He currently works as a Senior Product Marketing Manager for Couchbase. His free time is spent with his family, watching the Reds, and getting involved in the developer community. He is the author of AOP in .NET, Pro Microservices in .NET, a Pluralsight author, and a Microsoft MVP.\",\"sameAs\":[\"https:\/\/crosscuttingconcerns.com\",\"https:\/\/x.com\/mgroves\"],\"url\":\"https:\/\/www.couchbase.com\/blog\/pt\/author\/matthew-groves\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Anunciando a disponibilidade geral do provedor principal do Couchbase EF","description":"O provedor do Couchbase EF Core j\u00e1 est\u00e1 dispon\u00edvel para todos, proporcionando uma integra\u00e7\u00e3o perfeita entre o Couchbase e o Entity Framework Core.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.couchbase.com\/blog\/pt\/ef-core-provider-for-couchbase-general-availability\/","og_locale":"pt_BR","og_type":"article","og_title":"Announcing the General Availability of the Couchbase EF Core Provider","og_description":"The Couchbase EF Core Provider is now generally available, bringing seamless integration between Couchbase and Entity Framework Core.","og_url":"https:\/\/www.couchbase.com\/blog\/pt\/ef-core-provider-for-couchbase-general-availability\/","og_site_name":"The Couchbase Blog","article_published_time":"2025-04-24T18:51:03+00:00","og_image":[{"width":2400,"height":1256,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/04\/blog-ef-core-couchbase.png","type":"image\/png"}],"author":"Matthew Groves","twitter_card":"summary_large_image","twitter_creator":"@mgroves","twitter_misc":{"Written by":"Matthew Groves","Est. reading time":"3 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/ef-core-provider-for-couchbase-general-availability\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/ef-core-provider-for-couchbase-general-availability\/"},"author":{"name":"Matthew Groves","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/3929663e372020321b0152dc4fa65a58"},"headline":"Announcing the General Availability of the Couchbase EF Core Provider","datePublished":"2025-04-24T18:51:03+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/ef-core-provider-for-couchbase-general-availability\/"},"wordCount":545,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/ef-core-provider-for-couchbase-general-availability\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/04\/blog-ef-core-couchbase.png","keywords":["EF Core","Entity Framework"],"articleSection":[".NET","Best Practices and Tutorials","Couchbase Capella","Couchbase Server","Tools &amp; SDKs"],"inLanguage":"pt-BR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/ef-core-provider-for-couchbase-general-availability\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/ef-core-provider-for-couchbase-general-availability\/","url":"https:\/\/www.couchbase.com\/blog\/ef-core-provider-for-couchbase-general-availability\/","name":"Anunciando a disponibilidade geral do provedor principal do Couchbase EF","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/ef-core-provider-for-couchbase-general-availability\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/ef-core-provider-for-couchbase-general-availability\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/04\/blog-ef-core-couchbase.png","datePublished":"2025-04-24T18:51:03+00:00","description":"O provedor do Couchbase EF Core j\u00e1 est\u00e1 dispon\u00edvel para todos, proporcionando uma integra\u00e7\u00e3o perfeita entre o Couchbase e o Entity Framework Core.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/ef-core-provider-for-couchbase-general-availability\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/ef-core-provider-for-couchbase-general-availability\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/ef-core-provider-for-couchbase-general-availability\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/04\/blog-ef-core-couchbase.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/04\/blog-ef-core-couchbase.png","width":2400,"height":1256},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/ef-core-provider-for-couchbase-general-availability\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Announcing the General Availability of the Couchbase EF Core Provider"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"Blog do Couchbase","description":"Couchbase, o banco de dados NoSQL","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"Blog do Couchbase","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/3929663e372020321b0152dc4fa65a58","name":"Matthew Groves","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/ba51e6aacc53995c323a634e4502ef54","url":"https:\/\/secure.gravatar.com\/avatar\/70feb1b28a099ad0112b8d21fe1e81e1a4524beed3e20b7f107d5370e85a07ab?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/70feb1b28a099ad0112b8d21fe1e81e1a4524beed3e20b7f107d5370e85a07ab?s=96&d=mm&r=g","caption":"Matthew Groves"},"description":"Matthew D. Groves \u00e9 um cara que adora programar. N\u00e3o importa se \u00e9 C#, jQuery ou PHP: ele enviar\u00e1 solicita\u00e7\u00f5es de pull para qualquer coisa. Ele tem programado profissionalmente desde que escreveu um aplicativo de ponto de venda QuickBASIC para a pizzaria de seus pais nos anos 90. Atualmente, ele trabalha como gerente s\u00eanior de marketing de produtos da Couchbase. Seu tempo livre \u00e9 passado com a fam\u00edlia, assistindo aos Reds e participando da comunidade de desenvolvedores. Ele \u00e9 autor de AOP in .NET, Pro Microservices in .NET, autor da Pluralsight e Microsoft MVP.","sameAs":["https:\/\/crosscuttingconcerns.com","https:\/\/x.com\/mgroves"],"url":"https:\/\/www.couchbase.com\/blog\/pt\/author\/matthew-groves\/"}]}},"authors":[{"term_id":8937,"user_id":71,"is_guest":0,"slug":"matthew-groves","display_name":"Matthew Groves","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/70feb1b28a099ad0112b8d21fe1e81e1a4524beed3e20b7f107d5370e85a07ab?s=96&d=mm&r=g","author_category":"","last_name":"Groves","first_name":"Matthew","job_title":"","user_url":"https:\/\/crosscuttingconcerns.com","description":"Matthew D. Groves \u00e9 um cara que adora programar.  N\u00e3o importa se \u00e9 C#, jQuery ou PHP: ele enviar\u00e1 solicita\u00e7\u00f5es de pull para qualquer coisa.  Ele tem programado profissionalmente desde que escreveu um aplicativo de ponto de venda QuickBASIC para a pizzaria de seus pais nos anos 90.  Atualmente, ele trabalha como gerente s\u00eanior de marketing de produtos da Couchbase. Seu tempo livre \u00e9 passado com a fam\u00edlia, assistindo aos Reds e participando da comunidade de desenvolvedores.  Ele \u00e9 autor de AOP in .NET, Pro Microservices in .NET, autor da Pluralsight e Microsoft MVP."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/17073","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/users\/71"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/comments?post=17073"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/17073\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media\/17074"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media?parent=17073"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/categories?post=17073"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/tags?post=17073"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/ppma_author?post=17073"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}