{"id":4669,"date":"2025-04-24T11:51:03","date_gmt":"2025-04-24T18:51:03","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/ef-core-provider-for-couchbase-general-availability\/"},"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":"Announcing the General Availability of the Couchbase EF Core Provider"},"content":{"rendered":"\n<p><span>The <\/span><a href=\"https:\/\/github.com\/couchbaselabs\/couchbase-efcore-provider\"><b>Couchbase EF Core Provider<\/b><span> is now <\/span><b>generally available<\/b><\/a><span>. This release brings the power of Entity Framework Core to Couchbase, allowing .NET developers to work with Couchbase using familiar EF Core patterns.<\/span><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What is the Couchbase EF Core provider?<\/h2>\n\n\n\n<p><span>Entity Framework Core (EF Core) is a popular O\/RM that simplifies database access for .NET applications. It allows developers to work with data using C# objects and LINQ queries instead of writing raw database queries. EF Core enables integration with various databases, providing automatic change tracking, transactions, and a familiar DbContext API. It&#8217;s a familiar interface that developers can use to save time and integrate with many frameworks and database-adjacent libraries.<\/span><\/p>\n\n\n\n<p><span>The <\/span><b>Couchbase EF Core Provider<\/b><span> enables developers to use Entity Framework Core with <\/span><b>Couchbase Server<\/b><span> and <\/span><a href=\"https:\/\/cloud.couchbase.com\/sign-up\"><b>Couchbase Capell<\/b><b>a<\/b><\/a><span> (now available with a perpetual free tier). With this provider, you can work with Couchbase documents as if they were relational entities, using Linq queries, DbContext, and change tracking.<\/span><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Getting started<\/h2>\n\n\n\n<p><span>To install the Couchbase EF Core Provider, add the <\/span><a href=\"https:\/\/www.nuget.org\/packages\/Couchbase.EntityFrameworkCore\"><span>NuGet package<\/span><\/a><span>:<\/span><\/p>\n\n\n<p>[crayon nums=&#8221;false&#8221; lang=&#8221;ps&#8221; decode=&#8221;true&#8221;]# .NET CLI<br \/>\ndotnet add package Couchbase.EntityFrameworkCore<\/p>\n<p># Or using Package Manager<br \/>\nInstall-Package Couchbase.EntityFrameworkCore[\/crayon]<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Example: using EF Core with Couchbase<\/h3>\n\n\n\n<p><span>Here\u2019s a simple &#8220;shopping cart&#8221; example of how to set up and use the <\/span><b>Couchbase EF Core Provider<\/b><span> with a shopping cart model.<\/span><\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Define Your Entity Models<\/h4>\n\n\n<p>[crayon nums=&#8221;false&#8221; wrap=&#8221;true&#8221; lang=&#8221;c#&#8221; decode=&#8221;true&#8221;]using Couchbase;<br \/>\nusing Couchbase.EntityFrameworkCore;<br \/>\nusing Couchbase.EntityFrameworkCore.Extensions;<br \/>\nusing Microsoft.EntityFrameworkCore;<br \/>\nusing Microsoft.Extensions.Logging;<br \/>\nusing NLog.Extensions.Logging;<br \/>\nusing ILoggerFactory = Microsoft.Extensions.Logging.ILoggerFactory;<\/p>\n<p>public class Cart<br \/>\n{<br \/>\n\u00a0\u00a0\u00a0\u00a0public string CartId { get; set; }<br \/>\n\u00a0\u00a0\u00a0\u00a0public DateTimeOffset Created { get; set; }<br \/>\n\u00a0\u00a0\u00a0\u00a0public List&lt;Item&gt; Items { get; set; }<br \/>\n}<\/p>\n<p>public class Item<br \/>\n{<br \/>\n\u00a0\u00a0\u00a0\u00a0public string ItemId { get; set; }<br \/>\n\u00a0\u00a0\u00a0\u00a0public string Name { get; set; }<br \/>\n\u00a0\u00a0\u00a0\u00a0public uint Quantity { get; set; }<br \/>\n\u00a0\u00a0\u00a0\u00a0public decimal Price { get; set; }<br \/>\n}[\/crayon]<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Create a DbContext for Couchbase<\/h4>\n\n\n<p>[crayon nums=&#8221;false&#8221; wrap=&#8221;true&#8221; lang=&#8221;c#&#8221; decode=&#8221;true&#8221;]public class CartContext : DbContext<br \/>\n{<br \/>\n\u00a0\u00a0\u00a0\u00a0public DbSet&lt;Cart&gt; Carts { get; set; }<br \/>\n\u00a0\u00a0\u00a0\u00a0public DbSet&lt;Item&gt; Items { get; set; }<br \/>\n\u00a0\u00a0\u00a0\u00a0private static readonly ILoggerFactory LoggerFactory = Microsoft.Extensions.Logging.LoggerFactory.Create(builder =&gt;<br \/>\n\u00a0\u00a0\u00a0\u00a0{<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0builder.ClearProviders();<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0builder.AddNLog();<br \/>\n\u00a0\u00a0\u00a0\u00a0});<br \/>\n\u00a0\u00a0\u00a0\u00a0protected override void OnConfiguring(DbContextOptionsBuilder options)<br \/>\n\u00a0\u00a0\u00a0\u00a0{<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0options.UseCouchbase(new ClusterOptions()<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0.WithCredentials(&#8220;Administrator&#8221;, &#8220;password&#8221;)<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0.WithConnectionString(&#8220;couchbase:\/\/localhost&#8221;)<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0.WithLogging(LoggerFactory),<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0couchbaseDbContextOptions =&gt;<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0couchbaseDbContextOptions.Bucket = &#8220;Shopping&#8221;;<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0couchbaseDbContextOptions.Scope = &#8220;Ecommerce&#8221;;<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0});<br \/>\n\u00a0\u00a0\u00a0\u00a0}<\/p>\n<p>\u00a0\u00a0\u00a0\u00a0protected override void OnModelCreating(ModelBuilder modelBuilder)<br \/>\n\u00a0\u00a0\u00a0\u00a0{<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0modelBuilder.Entity&lt;Cart&gt;().ToCouchbaseCollection(this, &#8220;Carts&#8221;);<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0modelBuilder.Entity&lt;Item&gt;().ToCouchbaseCollection(this, &#8220;Items&#8221;);<br \/>\n\u00a0\u00a0\u00a0\u00a0}<br \/>\n}[\/crayon]<\/p>\n\n\n\n<p><span>This arrangement assumes that you have created a bucket in Couchbase called <em>Shopping<\/em>, which contains a scope called <em>Ecommerce<\/em>, which contains collections <em>Items<\/em> and <em>Carts<\/em>.<\/span><\/p>\n\n\n\n<p><span>Also, note that logging is optional, but it&#8217;s a good idea to turn it on to help identify any issues that may come up.<\/span><\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Insert and Query Data<\/h4>\n\n\n<p>[crayon nums=&#8221;false&#8221; wrap=&#8221;true&#8221; lang=&#8221;c#&#8221; decode=&#8221;true&#8221;]await using var db = new CartContext();<br \/>\nvar cart = new Cart<br \/>\n{<br \/>\n\u00a0\u00a0\u00a0\u00a0CartId = Guid.NewGuid().ToString(),<br \/>\n\u00a0\u00a0\u00a0\u00a0Created = DateTimeOffset.Now,<br \/>\n\u00a0\u00a0\u00a0\u00a0Items = new List&lt;Item&gt;<br \/>\n\u00a0\u00a0\u00a0\u00a0{<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0new Item { ItemId = Guid.NewGuid().ToString(), Name = &#8220;Widget&#8221;, Price = 0.99M, Quantity = 1},<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0new Item { ItemId = Guid.NewGuid().ToString(), Name = &#8220;Foo&#8221;, Price = 4.99M, Quantity = 3},<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0new Item { ItemId = Guid.NewGuid().ToString(), Name = &#8220;Baz&#8221;, Price = 99.19M, Quantity = 1}<br \/>\n\u00a0\u00a0\u00a0\u00a0}<br \/>\n};<br \/>\nawait db.AddAsync(cart);<br \/>\nawait db.SaveChangesAsync();<\/p>\n<p>var items = await db.Items.Where(i =&gt; i.Name == &#8220;Foo&#8221;).ToListAsync();<br \/>\nforeach (var i in items)<br \/>\n{<br \/>\n\u00a0\u00a0\u00a0\u00a0Console.WriteLine(JsonConvert.SerializeObject(i));<br \/>\n}[\/crayon]<\/p>\n\n\n\n<p><span>Here&#8217;s an example of what the documents in Couchbase will look like after insertion:<\/span><\/p>\n\n\n<p>[crayon nums=&#8221;false&#8221; lang=&#8221;js&#8221; decode=&#8221;true&#8221;]Key: 080c210a-34eb-45ea-b9b4-e5c6f8afa4d6<br \/>\n{<br \/>\n\u00a0\u00a0&#8220;CartId&#8221;: &#8220;080c210a-34eb-45ea-b9b4-e5c6f8afa4d6&#8221;,<br \/>\n\u00a0\u00a0&#8220;Created&#8221;: &#8220;2025-03-13T17:16:31.9904224-04:00&#8221;<br \/>\n}<br \/>\nKey acf54397-51c4-4ad7-bf34-d0a42061b662<br \/>\n{<br \/>\n\u00a0\u00a0&#8220;ItemId&#8221;: &#8220;acf54397-51c4-4ad7-bf34-d0a42061b662&#8221;,<br \/>\n\u00a0\u00a0&#8220;CartId&#8221;: &#8220;080c210a-34eb-45ea-b9b4-e5c6f8afa4d6&#8221;,<br \/>\n\u00a0\u00a0&#8220;Name&#8221;: &#8220;Foo&#8221;,<br \/>\n\u00a0\u00a0&#8220;Price&#8221;: 4.99,<br \/>\n\u00a0\u00a0&#8220;Quantity&#8221;: 3<br \/>\n}<br \/>\nKey a3f25210-97f2-4c95-ad4b-f241dde0d9c3<br \/>\n{<br \/>\n\u00a0\u00a0&#8220;ItemId&#8221;: &#8220;a3f25210-97f2-4c95-ad4b-f241dde0d9c3&#8221;,<br \/>\n\u00a0\u00a0&#8220;CartId&#8221;: &#8220;080c210a-34eb-45ea-b9b4-e5c6f8afa4d6&#8221;,<br \/>\n\u00a0\u00a0&#8220;Name&#8221;: &#8220;Widget&#8221;,<br \/>\n\u00a0\u00a0&#8220;Price&#8221;: 0.99,<br \/>\n\u00a0\u00a0&#8220;Quantity&#8221;: 1<br \/>\n}<br \/>\n\/\/ &#8230; etc &#8230;[\/crayon]<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What works in the GA release?<\/h2>\n\n\n\n<p><span>The entire functionality of EF Core is very, very large. Being able to handle every possible Linq statement, for instance, is nearly impossible, even for mature EF Core providers like SQL Server. However, this release supports many core EF Core capabilities, including:<\/span><\/p>\n\n\n\n<p><span>\u2705 <\/span><b>LINQ support<\/b><span> \u2013 Translates LINQ queries to <\/span><b>Couchbase SQL++<\/b><span>.<br>\n<\/span><span>\u2705 <\/span><b>Basic CRUD operations<\/b><span> \u2013 Insert, update, and delete work as expected.<br>\n<\/span><span>\u2705 <\/span><b>Change tracking<\/b><span> \u2013 Entities are tracked for efficient updates.<\/span><\/p>\n\n\n\n<p><span>Also note that using Async methods is <\/span><b>required<\/b><span>. Couchbase&#8217;s .NET SDK is completely asynchronous. If you try to use a non-async method, you will get a runtime error along the lines of <code>Couchbase EF Core Database Provider does not support synchronous I\/O<\/code>.<\/span><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Known limitations<\/h2>\n\n\n\n<p><span>While this is a significant milestone, <\/span><b>some features are still a work in progress<\/b><span>, including:<\/span><\/p>\n\n\n\n<p><span>\u274c <\/span><b>Denormalization<\/b><span> \u2013 Nesting collections inside documents (e.g., storing <\/span><span>Items<\/span><span> inside <\/span><span>Cart <\/span><span>as a single JSON document) is not yet supported.<br>\n<\/span><span>\u274c <\/span><b>Eager Loading<\/b><span> \u2013 <\/span><span><code>.Include()<\/code><\/span><span> statements may not work as expected.<br>\n<\/span><span>\u274c <\/span><b>SQL++ Function Support<\/b><span> \u2013 Some SQL++ functions like <\/span><span>META<\/span><span>, <\/span><span>RYOW<\/span><span>, etc., are not fully implemented.<br>\n<\/span><span>\u274c <\/span><b>Transactions <\/b><span>\u2013 Not yet supported in this release.<\/span><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Join the conversation!<\/h2>\n\n\n\n<p><span>We want your feedback! Help shape the future of the <\/span><b>Couchbase EF Core Provider<\/b><span>:<\/span><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><b>Ask questions and share experiences<\/b><span> in the<\/span><a href=\"https:\/\/www.couchbase.com\/forums\/c\/net-sdk\/6\"><span> Couchbase .NET forums<\/span><\/a><span>.<\/span><\/li>\n\n\n<li><b>Chat with us on Discord<\/b><span> \u2013<\/span><a href=\"https:\/\/discord.com\/invite\/K7NPMPGrPk\"><span> Join our community<\/span><\/a><span>.<\/span><\/li>\n\n\n<li><b>Report issues and contribute<\/b><span> on<\/span><a href=\"https:\/\/github.com\/couchbaselabs\/couchbase-efcore-provider\"><span> GitHub<\/span><\/a><span>.<\/span><\/li>\n\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">What\u2019s next?<\/h2>\n\n\n\n<p><span>This release is just the beginning! We\u2019re actively working on building out this EF Core implementation. <\/span><b>Your feedback <\/b><span>will help to prioritize functionality.<\/span><\/p>\n\n\n\n<p><span>Try it out today and let us know what you think. Happy coding!<\/span><\/p>\n\n\n\n<p><br><br><\/p>\n","protected":false},"excerpt":{"rendered":"<p>The Couchbase EF Core Provider is now generally available. This release brings the power of Entity Framework Core to Couchbase, allowing .NET developers to work with Couchbase using familiar EF Core patterns. What is the Couchbase EF Core provider? Entity Framework Core (EF Core) is a popular O\/RM that simplifies database access for .NET applications. [&hellip;]<\/p>\n","protected":false},"author":71,"featured_media":4668,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[33,136,301,54,64],"tags":[974,333],"ppma_author":[186],"class_list":["post-4669","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"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.6 (Yoast SEO v27.6) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\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\/5\/2026\/05\/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\":946,\"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\\\/5\\\/2026\\\/05\\\/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\\\/5\\\/2026\\\/05\\\/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\\\/5\\\/2026\\\/05\\\/blog-ef-core-couchbase.png\",\"contentUrl\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/5\\\/2026\\\/05\\\/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\\\/sites\\\/5\\\/2026\\\/06\\\/logo.svg\",\"contentUrl\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/5\\\/2026\\\/06\\\/logo.svg\",\"width\":\"1024\",\"height\":\"1024\",\"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:\\\/\\\/secure.gravatar.com\\\/avatar\\\/70feb1b28a099ad0112b8d21fe1e81e1a4524beed3e20b7f107d5370e85a07ab?s=96&d=mm&r=gba51e6aacc53995c323a634e4502ef54\",\"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":"Announcing the General Availability of the Couchbase EF Core Provider","description":"The Couchbase EF Core Provider is now generally available, bringing seamless integration between Couchbase and 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\/5\/2026\/05\/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":946,"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\/5\/2026\/05\/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\/5\/2026\/05\/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\/5\/2026\/05\/blog-ef-core-couchbase.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/5\/2026\/05\/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\/sites\/5\/2026\/06\/logo.svg","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/5\/2026\/06\/logo.svg","width":"1024","height":"1024","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:\/\/secure.gravatar.com\/avatar\/70feb1b28a099ad0112b8d21fe1e81e1a4524beed3e20b7f107d5370e85a07ab?s=96&d=mm&r=gba51e6aacc53995c323a634e4502ef54","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\/"}]}},"acf":[],"authors":[{"term_id":186,"user_id":71,"is_guest":0,"slug":"matthew-groves","display_name":"Matthew Groves","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/?s=96&d=mm&r=g","0":null,"1":"","2":"","3":"","4":"","5":"","6":"","7":"","8":""}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/4669","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=4669"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/4669\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media\/4668"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media?parent=4669"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/categories?post=4669"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/tags?post=4669"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/ppma_author?post=4669"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}