{"id":17313,"date":"2025-07-16T10:17:31","date_gmt":"2025-07-16T17:17:31","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=17313"},"modified":"2025-07-25T12:06:01","modified_gmt":"2025-07-25T19:06:01","slug":"ef-core-couchbase-integrations","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/es\/ef-core-couchbase-integrations\/","title":{"rendered":"3 integraciones de EF Core que funcionan con Couchbase"},"content":{"rendered":"<p>El nuevo <a href=\"https:\/\/docs.couchbase.com\/efcore-provider\/current\/overview.html\" target=\"_blank\" rel=\"noopener\">EF Proveedor principal<\/a> abre la puerta a algunas potentes integraciones .NET: incluso aquellas tradicionalmente ligadas a bases de datos relacionales. Este art\u00edculo explica c\u00f3mo funcionan Identity, GraphQL y OData con Couchbase.<\/p>\n<p>En este art\u00edculo, repasar\u00e9 <b>tres integraciones avanzadas de EF Core<\/b> que he probado con \u00e9xito con Couchbase:<\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Identidad ASP.NET Core<\/b><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>GraphQL (a trav\u00e9s de Hot Chocolate)<\/b><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>OData<\/b><\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<p><strong>Nota:\u00a0<\/strong>Estas integraciones se basan en pruebas limitadas y no cuentan con soporte oficial (todav\u00eda). Su kilometraje puede variar, pero hasta ahora, son muy prometedoras.<\/p>\n<h2 style=\"font-weight: 400;\">Identidad ASP.NET Core<\/h2>\n<p><em><a href=\"https:\/\/www.nuget.org\/packages\/Microsoft.AspNetCore.Identity.EntityFrameworkCore\" target=\"_blank\" rel=\"noopener\">Microsoft.AspNetCore.Identity.EntityFrameworkCore<\/a><\/em> proporciona un sistema plug-and-play de autenticaci\u00f3n y gesti\u00f3n de usuarios para aplicaciones ASP.NET.<\/p>\n<p>El proveedor EF Core de Couchbase funciona bien con \u00e9l. La \u00fanica advertencia es que tendr\u00e1s que asegurarte de que el archivo <strong>primero existen las colecciones adecuadas<\/strong> (como AspNetUsers, AspNetRoles, etc.).<\/p>\n<p><strong>Nota:\u00a0<\/strong>Debe crear previamente las siguientes colecciones: AspNetUsers, AspNetRoles, AspNetUserRoles, AspNetUserClaims, AspNetUserLogins, AspNetUserTokens, AspNetRoleClaims.<\/p>\n<h3 style=\"font-weight: 200;\">Ejemplo de configuraci\u00f3n de EF<\/h3>\n<pre class=\"nums:false lang:default decode:true\">public class AppDbContext : IdentityDbContext\r\n{\r\n    public AppDbContext(DbContextOptions opciones) : base(opciones) { }\r\n\r\n    protected override void OnModelCreating(ModelBuilder builder)\r\n    {\r\n        base.OnModelCreating(builder);\r\n\r\n        builder.Entity().ToCouchbaseCollection(this, \"AspNetUsers\");\r\n        builder.Entity().ToCouchbaseCollection(this, \"AspNetRoles\");\r\n        builder.Entity&lt;IdentityUserRole().ToCouchbaseCollection(this, \"AspNetUserRoles\");\r\n        builder.Entity&lt;IdentityUserClaim&gt;().ToCouchbaseCollection(this, \"AspNetUserClaims\");\r\n        builder.Entity&lt;IdentityUserLogin&gt;().ToCouchbaseCollection(this, \"AspNetUserLogins\");\r\n        builder.Entity&lt;IdentityUserToken&gt;().ToCouchbaseCollection(this, \"AspNetUserTokens\");\r\n        builder.Entity&lt;IdentityRoleClaim&gt;().ToCouchbaseCollection(this, \"AspNetRoleClaims\");\r\n    }\r\n}\r\n\r\npublic class ApplicationUser : IdentityUser { }<\/pre>\n<h3 style=\"font-weight: 200;\">MVC auth ejemplo<\/h3>\n<p>Este es un controlador ASP.NET Core MVC con registro, inicio de sesi\u00f3n y cierre de sesi\u00f3n, as\u00ed como un rol personalizado:<\/p>\n<pre class=\"nums:false lang:default decode:true\">public class AuthController : Controlador\r\n{\r\n    private readonly UserManager _userManager;\r\n    private readonly SignInManager _signInManager;\r\n    privado readonly RoleManager _roleManager;\r\n\r\n    public AuthController(UserManager userManager, SignInManager signInManager, RoleManager roleManager)\r\n    {\r\n        _userManager = userManager;\r\n        _signInManager = signInManager;\r\n        _roleManager = roleManager;\r\n    }\r\n\r\n    public IActionResult Registro() =&gt; Vista();\r\n\r\n    [HttpPost]\r\n    public async Task Register(RegisterModel model)\r\n    {\r\n        if (!ModelState.IsValid) return View(model);\r\n\r\n        var user = new ApplicationUser { NombreUsuario = model.Email, Email = model.Email };\r\n        var result = await _userManager.CreateAsync(user, model.Password);\r\n        if (result.Succeeded)\r\n        {\r\n            var roleName = \"CustomRole\";\r\n            if (!await _roleManager.RoleExistsAsync(roleName))\r\n                await _roleManager.CreateAsync(new IdentityRole(roleName));\r\n\r\n            await _userManager.AddToRoleAsync(user, roleName);\r\n            await _signInManager.SignInAsync(usuario, isPersistent: false);\r\n            return RedirectToAction(\"\u00cdndice\", \"Inicio\");\r\n        }\r\n\r\n        foreach (var error in result.Errors) ModelState.AddModelError(\"\", error.Description);\r\n        return Vista(modelo);\r\n    }\r\n\r\n    public IActionResult Login() =&gt; Vista();\r\n\r\n    [HttpPost]\r\n    public async Task Login(LoginModel model)\r\n    {\r\n        if (!ModelState.IsValid) return View(model);\r\n\r\n        var result = await _signInManager.PasswordSignInAsync(model.Email, model.Password, false, false);\r\n        if (resultado correcto)\r\n            return RedirectToAction(\"\u00cdndice\", \"Inicio\");\r\n\r\n        ModelState.AddModelError(\"\", \"Intento de inicio de sesi\u00f3n no v\u00e1lido\");\r\n        return View(modelo);\r\n    }\r\n\r\n    public async Task Logout()\r\n    {\r\n        await _signInManager.SignOutAsync();\r\n        return RedirectToAction(\"\u00cdndice\", \"Inicio\");\r\n    }\r\n}<\/pre>\n<p>Los datos siguen la estructura est\u00e1ndar de Identity, almacenados en un documento Couchbase. Por ejemplo, un documento en <em>AspNetUser<\/em> colecci\u00f3n:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-17314\" style=\"border: 1px solid Gainsboro;\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/07\/image1-1.png\" alt=\"A document in AspNetUser collection\" width=\"464\" height=\"338\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/07\/image1-1.png 464w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/07\/image1-1-300x219.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/07\/image1-1-16x12.png 16w\" sizes=\"auto, (max-width: 464px) 100vw, 464px\" \/><\/p>\n<hr \/>\n<h2 style=\"font-weight: 400;\">GraphQL con chocolate caliente<\/h2>\n<p><a href=\"https:\/\/chillicream.com\/docs\/hotchocolate\/v15\" target=\"_blank\" rel=\"noopener\">Chocolate caliente<\/a> es un popular servidor GraphQL para .NET. Puede integrarse con EF Core, apoy\u00e1ndose en las capacidades LINQ del proveedor (que tiene Couchbase). Esto significa que las consultas GraphQL se traducen a LINQ, que a su vez se traduce a Couchbase SQL++.<\/p>\n<h3 style=\"font-weight: 200;\">Configurar<\/h3>\n<pre class=\"nums:false lang:default decode:true\">public class WidgetQuery\r\n{\r\n    [UseFiltering]\r\n    [UseSorting]\r\n    public IQueryable GetWidgets([Service] WidgetDbContext dbContext)\r\n        =&gt; dbContext.Widgets;\r\n}\r\n\r\n\/\/ Programa.cs:\r\n\r\nbuilder.Services\r\n    .AddGraphQLServer()\r\n    .AddQueryType()\r\n    .AddFiltering()\r\n    .AddSorting()\r\n    .AddProjections();\r\n\r\napp.MapGraphQL();<\/pre>\n<h3 style=\"font-weight: 200;\">Ejemplo de uso<\/h3>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\">Ir a <em>\/graphql<\/em> en el navegador (se abre una interfaz web)<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-17315\" style=\"border: 1px solid Gainsboro;\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/07\/image3-1.png\" alt=\"\" width=\"945\" height=\"756\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/07\/image3-1.png 945w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/07\/image3-1-300x240.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/07\/image3-1-768x614.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/07\/image3-1-15x12.png 15w\" sizes=\"auto, (max-width: 945px) 100vw, 945px\" \/><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\">Prueba con una consulta como \u00e9sta:<\/li>\n<\/ul>\n<pre class=\"nums:false lang:default decode:true\">consulta {\r\n  widgets(where: { name: { contains: \"foo\" } }, order: { createdDt: DESC }) {\r\n    id\r\n    nombre\r\n    precio\r\n    numInStock\r\n    fecha de creaci\u00f3n\r\n  }\r\n}\r\n<\/pre>\n<p>Esto devolver\u00e1 resultados como:<\/p>\n<pre class=\"nums:false lang:default decode:true\">{\r\n  \"datos\": {\r\n    \"widgets\": [\r\n      {\r\n        \"id\": \"b5c494fe-135f-4f01-bf12-6e4ad1eee829\",\r\n        \"name\": \"foobar\",\r\n        \"price\": 1.99,\r\n        \"numInStock\": 50,\r\n        \"createdDt\": \"2025-06-18T18:11:19.149Z\"\r\n      }\r\n    ]\r\n  }\r\n}<\/pre>\n<h3 style=\"font-weight: 200;\">Consejos<\/h3>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\">Las consultas GraphQL tienen que coincidir con sus \u00edndices GSI (no son m\u00e1s que consultas SQL++ bajo el cap\u00f3).<\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\">Puede utilizar <a href=\"https:\/\/docs.couchbase.com\/server\/current\/n1ql\/n1ql-language-reference\/covering-indexes.html\" target=\"_blank\" rel=\"noopener\">\u00edndices de cubiertas<\/a> y otros \u00edndices SQL++ para mejorar el rendimiento.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<hr \/>\n<h2 style=\"font-weight: 400;\">OData<\/h2>\n<p><a href=\"https:\/\/www.nuget.org\/packages\/Microsoft.AspNetCore.OData\" target=\"_blank\" rel=\"noopener\">Microsoft.AspNetCore.OData<\/a> expone tus datos de EF Core como puntos finales OData, facilitando la conexi\u00f3n de herramientas como Excel, Power BI y Tableau a Couchbase.<\/p>\n<h3 style=\"font-weight: 200;\">Programa de ejemplo.cs<\/h3>\n<pre class=\"nums:false lang:default decode:true\">builder.Services.AddControllersWithViews()\r\n  .AddOData(opt =&gt;\r\n  {\r\n    var odataBuilder = new ODataConventionModelBuilder();\r\n    odataBuilder.EntitySet(\"Widgets\");\r\n\r\n    opt.AddRouteComponents(\"odata\", odataBuilder.GetEdmModel())\r\n      .Filter()\r\n      .OrderBy()\r\n      Seleccionar()\r\n      Expandir()\r\n      Contar()\r\n      .SetMaxTop(100);\r\n  });<\/pre>\n<h3 style=\"font-weight: 200;\">Controlador<\/h3>\n<pre class=\"nums:false lang:default decode:true\">[HttpGet(\"\/odata\/Widgets\")]\r\n[EnableQuery]\r\npublic IQueryable GetOData() =&gt; _context.Widgets;<\/pre>\n<h3 style=\"font-weight: 200;\">Ejemplo de consultas OData<\/h3>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\">https:\/\/localhost:7037\/odata\/Widgets?$filter=price gt 1&amp;$orderby=nombre<\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\">https:\/\/localhost:7037\/odata\/Widgets?$select=name,price&amp;$top=10<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-17316\" style=\"border: 1px solid Gainsboro;\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/07\/image2-1.png\" alt=\"\" width=\"593\" height=\"572\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/07\/image2-1.png 593w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/07\/image2-1-300x289.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/07\/image2-1-12x12.png 12w\" sizes=\"auto, (max-width: 593px) 100vw, 593px\" \/><\/p>\n<p><strong>Nota:<\/strong> Aseg\u00farate de que tus consultas EF Core LINQ se pueden traducir a SQL++ y que cualquier campo filtrado\/clasificado est\u00e1 indexado en Couchbase.<\/p>\n<h2 style=\"font-weight: 400;\">Conclusi\u00f3n<\/h2>\n<p>Todas estas integraciones est\u00e1n respaldadas por EF Core y ahora, con el soporte de Couchbase, puedes aprovecharlas al m\u00e1ximo en tu c\u00f3digo. Tanto si est\u00e1s creando aplicaciones web seguras, APIs GraphQL o integr\u00e1ndote con herramientas de BI, el combo EF Core y Couchbase lo hace posible.<\/p>\n<p>\u00bfQuiere ver m\u00e1s? D\u00edganos qu\u00e9 integraciones le gustar\u00eda explorar a continuaci\u00f3n.<\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"https:\/\/www.couchbase.com\/blog\/es\/couchbase-on-discord\/\" target=\"_blank\" rel=\"noopener\">Discordia<\/a><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"https:\/\/www.couchbase.com\/blog\/es\/forums\/c\/net-sdk\/\" target=\"_blank\" rel=\"noopener\">Foros de Couchbase .NET<\/a><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"https:\/\/docs.couchbase.com\/efcore-provider\/current\/overview.html\" target=\"_blank\" rel=\"noopener\">Documentaci\u00f3n de Couchbase EF Core<\/a><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"https:\/\/www.youtube.com\/watch?v=KNIMjTHtxRs\" target=\"_blank\" rel=\"noopener\">Echa un vistazo a este breve v\u00eddeo para conocer las integraciones de EF Core que se tratan en este art\u00edculo.<\/a><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"https:\/\/www.youtube.com\/watch?v=0UDFJvMg5Wc\" target=\"_blank\" rel=\"noopener\">Tambi\u00e9n puedes ver el Standup de la Comunidad .NET en el que se presenta el proveedor Couchbase EF Core y sus capacidades.<\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><iframe loading=\"lazy\" title=\".NET Data Community Standup - Couchbase tiene un proveedor EF Core\" width=\"900\" height=\"506\" src=\"https:\/\/www.youtube.com\/embed\/0UDFJvMg5Wc?feature=oembed&#038;enablejsapi=1&#038;origin=https:\/\/www.couchbase.com\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/p>","protected":false},"excerpt":{"rendered":"<p>Couchbase\u2019s new EF Core provider opens the door to some powerful .NET integrations: even ones traditionally tied to relational databases. This post walks through how Identity, GraphQL, and OData all work with Couchbase. In this post, I\u2019ll walk through three [&hellip;]<\/p>","protected":false},"author":71,"featured_media":17317,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1811,10126,2242],"tags":[1806,2210,1468],"ppma_author":[8937],"class_list":["post-17313","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dotnet","category-asp-dotnet","category-connectors","tag-entity-framework","tag-graphql","tag-linq"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.7.1 (Yoast SEO v25.7) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>3 EF Core Integrations That Work with Couchbase - The Couchbase Blog<\/title>\n<meta name=\"description\" content=\"Whether you\u2019re building secure web applications, GraphQL APIs or integrating with BI tools, The EF Core and Couchbase combo makes it possible\" \/>\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\/es\/ef-core-couchbase-integrations\/\" \/>\n<meta property=\"og:locale\" content=\"es_MX\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"3 EF Core Integrations That Work with Couchbase\" \/>\n<meta property=\"og:description\" content=\"Whether you\u2019re building secure web applications, GraphQL APIs or integrating with BI tools, The EF Core and Couchbase combo makes it possible\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/es\/ef-core-couchbase-integrations\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2025-07-16T17:17:31+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-07-25T19:06:01+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/07\/blog-ef-core-integrations.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-couchbase-integrations\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/ef-core-couchbase-integrations\/\"},\"author\":{\"name\":\"Matthew Groves\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/3929663e372020321b0152dc4fa65a58\"},\"headline\":\"3 EF Core Integrations That Work with Couchbase\",\"datePublished\":\"2025-07-16T17:17:31+00:00\",\"dateModified\":\"2025-07-25T19:06:01+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/ef-core-couchbase-integrations\/\"},\"wordCount\":493,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/ef-core-couchbase-integrations\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/07\/blog-ef-core-integrations.png\",\"keywords\":[\"Entity Framework\",\"graphql\",\"Linq\"],\"articleSection\":[\".NET\",\"ASP.NET\",\"Connectors\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/ef-core-couchbase-integrations\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/ef-core-couchbase-integrations\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/ef-core-couchbase-integrations\/\",\"name\":\"3 EF Core Integrations That Work with Couchbase - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/ef-core-couchbase-integrations\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/ef-core-couchbase-integrations\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/07\/blog-ef-core-integrations.png\",\"datePublished\":\"2025-07-16T17:17:31+00:00\",\"dateModified\":\"2025-07-25T19:06:01+00:00\",\"description\":\"Whether you\u2019re building secure web applications, GraphQL APIs or integrating with BI tools, The EF Core and Couchbase combo makes it possible\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/ef-core-couchbase-integrations\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/ef-core-couchbase-integrations\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/ef-core-couchbase-integrations\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/07\/blog-ef-core-integrations.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/07\/blog-ef-core-integrations.png\",\"width\":2400,\"height\":1256},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/ef-core-couchbase-integrations\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"3 EF Core Integrations That Work with Couchbase\"}]},{\"@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\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@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\":\"es\",\"@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\/es\/author\/matthew-groves\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"3 EF Core Integrations That Work with Couchbase - The Couchbase Blog","description":"Whether you\u2019re building secure web applications, GraphQL APIs or integrating with BI tools, The EF Core and Couchbase combo makes it possible","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\/es\/ef-core-couchbase-integrations\/","og_locale":"es_MX","og_type":"article","og_title":"3 EF Core Integrations That Work with Couchbase","og_description":"Whether you\u2019re building secure web applications, GraphQL APIs or integrating with BI tools, The EF Core and Couchbase combo makes it possible","og_url":"https:\/\/www.couchbase.com\/blog\/es\/ef-core-couchbase-integrations\/","og_site_name":"The Couchbase Blog","article_published_time":"2025-07-16T17:17:31+00:00","article_modified_time":"2025-07-25T19:06:01+00:00","og_image":[{"width":2400,"height":1256,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/07\/blog-ef-core-integrations.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-couchbase-integrations\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/ef-core-couchbase-integrations\/"},"author":{"name":"Matthew Groves","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/3929663e372020321b0152dc4fa65a58"},"headline":"3 EF Core Integrations That Work with Couchbase","datePublished":"2025-07-16T17:17:31+00:00","dateModified":"2025-07-25T19:06:01+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/ef-core-couchbase-integrations\/"},"wordCount":493,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/ef-core-couchbase-integrations\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/07\/blog-ef-core-integrations.png","keywords":["Entity Framework","graphql","Linq"],"articleSection":[".NET","ASP.NET","Connectors"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/ef-core-couchbase-integrations\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/ef-core-couchbase-integrations\/","url":"https:\/\/www.couchbase.com\/blog\/ef-core-couchbase-integrations\/","name":"3 EF Core Integrations That Work with Couchbase - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/ef-core-couchbase-integrations\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/ef-core-couchbase-integrations\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/07\/blog-ef-core-integrations.png","datePublished":"2025-07-16T17:17:31+00:00","dateModified":"2025-07-25T19:06:01+00:00","description":"Whether you\u2019re building secure web applications, GraphQL APIs or integrating with BI tools, The EF Core and Couchbase combo makes it possible","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/ef-core-couchbase-integrations\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/ef-core-couchbase-integrations\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/ef-core-couchbase-integrations\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/07\/blog-ef-core-integrations.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2025\/07\/blog-ef-core-integrations.png","width":2400,"height":1256},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/ef-core-couchbase-integrations\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"3 EF Core Integrations That Work with Couchbase"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"El blog de Couchbase","description":"Couchbase, la base de datos 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":"es"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"El blog de Couchbase","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"es","@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":"es","@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":"A Matthew D. Groves le encanta programar. No importa si se trata de C#, jQuery o PHP: enviar\u00e1 pull requests para cualquier cosa. Lleva codificando profesionalmente desde que escribi\u00f3 una aplicaci\u00f3n de punto de venta en QuickBASIC para la pizzer\u00eda de sus padres, all\u00e1 por los a\u00f1os noventa. Actualmente trabaja como Director de Marketing de Producto para Couchbase. Su tiempo libre lo pasa con su familia, viendo a los Reds y participando en la comunidad de desarrolladores. Es autor de AOP in .NET, Pro Microservices in .NET, autor de Pluralsight y MVP de Microsoft.","sameAs":["https:\/\/crosscuttingconcerns.com","https:\/\/x.com\/mgroves"],"url":"https:\/\/www.couchbase.com\/blog\/es\/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","first_name":"Matthew","last_name":"Groves","user_url":"https:\/\/crosscuttingconcerns.com","author_category":"","description":"A Matthew D. Groves le encanta programar.  No importa si se trata de C#, jQuery o PHP: enviar\u00e1 pull requests para cualquier cosa.  Lleva codificando profesionalmente desde que escribi\u00f3 una aplicaci\u00f3n de punto de venta en QuickBASIC para la pizzer\u00eda de sus padres, all\u00e1 por los a\u00f1os noventa.  Actualmente trabaja como Director de Marketing de Producto para Couchbase. Su tiempo libre lo pasa con su familia, viendo a los Reds y participando en la comunidad de desarrolladores.  Es autor de AOP in .NET, Pro Microservices in .NET, autor de Pluralsight y MVP de Microsoft."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/17313","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/users\/71"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/comments?post=17313"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/17313\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media\/17317"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media?parent=17313"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/categories?post=17313"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/tags?post=17313"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/ppma_author?post=17313"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}