{"id":1963,"date":"2015-12-17T00:21:33","date_gmt":"2015-12-17T00:21:32","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=1963"},"modified":"2025-06-13T21:02:08","modified_gmt":"2025-06-14T04:02:08","slug":"introducing-linq2couchbase-developer-preview-1-the-linq-provider-for-couchbase-n1ql","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/pt\/introducing-linq2couchbase-developer-preview-1-the-linq-provider-for-couchbase-n1ql\/","title":{"rendered":"Apresentando o Linq2Couchbase Developer Preview 1: o provedor Linq para o Couchbase N1QL!"},"content":{"rendered":"<address><strong>*O c\u00f3digo de amostra para esta postagem est\u00e1 dispon\u00edvel na se\u00e7\u00e3o <a href=\"https:\/\/github.com\/couchbaselabs\/couchbase-net-examples\" target=\"_blank\" rel=\"noopener\">exemplos de couchbase-net<\/a> projeto <a href=\"https:\/\/github.com\/couchbaselabs\/couchbase-net-examples\/tree\/master\/Src\/Couchbase.Linq2CouchbaseExample\" target=\"_blank\" rel=\"noopener\">aqui<\/a>.<\/strong><\/address>\n<p>Estou muito animado em anunciar a pr\u00e9via para desenvolvedores #1 do provedor Linq oficial para o Couchbase N1QL! Este \u00e9 um pr\u00e9-lan\u00e7amento muito antecipado para apresentar o provedor, visualizar sua funcionalidade b\u00e1sica e ilustrar como us\u00e1-lo. Neste blog, criarei um aplicativo de amostra que aborda as etapas de como usar o provedor hoje.<\/p>\n<h2>Isen\u00e7\u00e3o de responsabilidade<\/h2>\n<p>Por ser um pr\u00e9-lan\u00e7amento, espera-se que a API p\u00fablica mude significativamente at\u00e9 que a vers\u00e3o beta esteja dispon\u00edvel. Observe que o projeto Couchbase.Linq depende da vers\u00e3o GA do SDK. N\u00e3o use esse provedor em produ\u00e7\u00e3o at\u00e9 a vers\u00e3o GA do SDK 2.2.0!<\/p>\n<h2>Obtendo o pacote<\/h2>\n<p>O pacote \u00e9 um pr\u00e9-lan\u00e7amento no NuGet e pode ser encontrado em <a href=\"https:\/\/www.nuget.org\/packages\/Linq2Couchbase\/1.0.0-dp1\" target=\"_blank\" rel=\"noopener\">aqui<\/a>. Se voc\u00ea estiver usando o Visual Studio, provavelmente desejar\u00e1 usar o NuGet Package Manager ou o NuGet Package Manager Console para incluir as depend\u00eancias no seu projeto.<\/p>\n<p>Primeiro, crie um aplicativo de console usando o Visual Studio. Em seguida, usando o Package Manager, procure por Couchbase.Linq:<\/p>\n<p style=\"text-align: center;\"><img decoding=\"async\" src=\"\/wp-content\/original-assets\/2015\/august\/introducing-linq2couchbase-developer-preview-1-the-linq-provider-for-couchbase-n1ql\/linq-provider-nuget.jpg\" \/><\/p>\n<p>Certifique-se de selecionar \"Include Prerelease\" ao pesquisar, caso contr\u00e1rio, o pacote n\u00e3o aparecer\u00e1 nos resultados da pesquisa. Clique em \"install\" (instalar) e todas as depend\u00eancias ser\u00e3o instaladas para voc\u00ea. Por fim, feche a caixa de di\u00e1logo do Package Manager.<\/p>\n<h2>Configura\u00e7\u00e3o e inicializa\u00e7\u00e3o<\/h2>\n<p>O provedor atual do Couchbase Linq tem uma forte depend\u00eancia da classe ClusterHelper do Couchbase .NET 2.1 SDK. O ClusterHelper \u00e9 uma classe que facilita o gerenciamento de buckets e outros recursos que, por motivos de desempenho, devem ter vida longa. \u00c9 um singleton para um objeto Cluster e um \"multiton\" para refer\u00eancias de Bucket. Essa depend\u00eancia provavelmente ser\u00e1 removida em vers\u00f5es futuras, mas deve ser considerada quando voc\u00ea usar o provedor Linq em seu aplicativo.<\/p>\n<p>Para lidar com essa depend\u00eancia, basta usar o ClusterHelper em seu aplicativo e chamar explicitamente Initialize() exatamente uma vez durante a vida \u00fatil do aplicativo. Por padr\u00e3o, o localhost ser\u00e1 usado para inicializar o cliente, mas voc\u00ea pode usar a sobrecarga que recebe uma ClientConfiguration que pode ser personalizada como voc\u00ea quiser.<\/p>\n<p><script src=\"https:\/\/gist.github.com\/jeffrymorris\/f2d3c147e32d4a554d96.js\"><\/script><\/p>\n<p>No gist acima, criamos uma nova configura\u00e7\u00e3o e especificamos uma inst\u00e2ncia do Couchbase Server instalada localmente como o destino do bootstrap. Em seguida, inicializamos o objeto auxiliar de cluster chamando Initialize e passando a configura\u00e7\u00e3o.<\/p>\n<h2>Cria\u00e7\u00e3o de uma inst\u00e2ncia de DbContext<\/h2>\n<p>Depois de inicializar o ClusterHelper, voc\u00ea criar\u00e1 um objeto DbContext que \u00e9 uma abstra\u00e7\u00e3o do armazenamento de dados subjacente (o Couchbase Bucket) e fornece um meio de criar consultas e (em breve) agrupar altera\u00e7\u00f5es que ser\u00e3o enviadas de volta ao bucket.<\/p>\n<p><script src=\"https:\/\/gist.github.com\/jeffrymorris\/929cfb8aa5403aa29cc9.js\"><\/script><\/p>\n<p>O construtor DbContext recebe um objeto Cluster e, em seguida, o nome do bucket do Couchbase a ser usado na consulta.<\/p>\n<p>Observe que, depois de criar o DbContext, ele pode ser usado v\u00e1rias vezes e voc\u00ea tamb\u00e9m pode executar JOINs contra ele mesmo. Em uma postagem posterior, mostrarei como herdar do DbContext para criar objetos de consulta concretos que mapeiem os documentos em seu bucket; eventualmente, forneceremos suporte a ferramentas para gerar esses objetos automaticamente a partir de um bucket.<\/p>\n<h2>Cria\u00e7\u00e3o de uma consulta Linq<\/h2>\n<p>Criar uma consulta Linq n\u00e3o \u00e9 diferente de usar qualquer outro provedor Linq em sua maior parte; as diferen\u00e7as s\u00e3o que o Linq2Couchbase oferece suporte a palavras-chave e conceitos N1QL como NEST, UNNEST e USE KEYS, entre outros.<\/p>\n<p><script src=\"https:\/\/gist.github.com\/jeffrymorris\/a8bd8ff9f1a8681a88d1.js\"><\/script><\/p>\n<p>Como todas as consultas Linq, a execu\u00e7\u00e3o \u00e9 adiada at\u00e9 que voc\u00ea a enumere:<\/p>\n<p><script src=\"https:\/\/gist.github.com\/jeffrymorris\/dad64ad4e1d12e13b9f4.js\"><\/script><\/p>\n<p>Aqui estamos simplesmente enumerando a consulta que criamos na etapa anterior. O provedor pegar\u00e1 a express\u00e3o que foi gerada e a converter\u00e1 em uma consulta N1QL e a executar\u00e1, retornando apenas a parte das linhas da resposta. Observe que as exce\u00e7\u00f5es ser\u00e3o lan\u00e7adas pelo provedor Linq, o que \u00e9 um comportamento diferente do Couchbase SDK, que retorna a exce\u00e7\u00e3o como uma propriedade da implementa\u00e7\u00e3o IQueryResult.<\/p>\n<h2>E quanto \u00e0 cl\u00e1usula WHERE?<\/h2>\n<p>Voc\u00ea notou que n\u00e3o estamos especificando uma cl\u00e1usula WHERE para filtrar por tipo de documento? Como os compartimentos s\u00e3o um espa\u00e7o-chave de documentos heterog\u00eaneos, sem um predicado para filtrar os resultados, a consulta gerada retornaria todos os atributos Name de todos os documentos do compartimento (observe que o compartimento de amostra de cerveja tem tipos de documentos de cerveja e cervejaria). Como queremos manter a DRY e adicionar um WHERE type=\"[document-type]\" para cada consulta seria tedioso, h\u00e1 uma maneira de especificar o filtro de documento como um atributo do POCO que estamos usando para nossa proje\u00e7\u00e3o.<\/p>\n<p><script src=\"https:\/\/gist.github.com\/jeffrymorris\/ce310c96d56ce1c6f8ab.js\"><\/script><\/p>\n<p>Aqui na defini\u00e7\u00e3o de POCO, adicionamos um EntityTypeFilter e especificamos \"beer\" (cerveja) como o tipo de documento que devemos direcionar com nossa consulta. Muito legal!<\/p>\n<h2>Conclus\u00e3o<\/h2>\n<p>Instale o pacote e experimente-o. Diga-nos o que achou e, se encontrar algum erro ou tiver uma solicita\u00e7\u00e3o de recurso, crie um <a href=\"https:\/\/issues.couchbase.com\/browse\/linq\" target=\"_blank\" rel=\"noopener\">T\u00edquete do Jira<\/a> ou enviar um <a href=\"https:\/\/github.com\/couchbaselabs\/Linq2Couchbase\" target=\"_blank\" rel=\"noopener\">solicita\u00e7\u00e3o de retirada<\/a>!<\/p>","protected":false},"excerpt":{"rendered":"<p>*Sample code for this post is available in the couchbase-net-examples project here. I am very excited to announce developer preview #1 of the official Linq provider for Couchbase N1QL! This is a very early pre-release to introduce the provider, preview [&hellip;]<\/p>","protected":false},"author":21,"featured_media":13873,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1811,1814,10127,1812,2201],"tags":[1468,1469],"ppma_author":[8970],"class_list":["post-1963","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dotnet","category-application-design","category-c-sharp","category-n1ql-query","category-tools-sdks","tag-linq","tag-linq2couchbase"],"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>Developer Preview 1 : The Linq provider for Couchbase N1QL!<\/title>\n<meta name=\"description\" content=\"Learn basic functionality of the Linq provider by checking out sample application that goes over the steps on how to use the provider today.\" \/>\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\/introducing-linq2couchbase-developer-preview-1-the-linq-provider-for-couchbase-n1ql\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Introducing Linq2Couchbase Developer Preview 1: The Linq provider for Couchbase N1QL!\" \/>\n<meta property=\"og:description\" content=\"Learn basic functionality of the Linq provider by checking out sample application that goes over the steps on how to use the provider today.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/pt\/introducing-linq2couchbase-developer-preview-1-the-linq-provider-for-couchbase-n1ql\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2015-12-17T00:21:32+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T04:02:08+00:00\" \/>\n<meta name=\"author\" content=\"Jeff Morris, Senior Software Engineer, Couchbase\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@jeffrysmorris\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jeff Morris, Senior Software Engineer, Couchbase\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/introducing-linq2couchbase-developer-preview-1-the-linq-provider-for-couchbase-n1ql\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/introducing-linq2couchbase-developer-preview-1-the-linq-provider-for-couchbase-n1ql\/\"},\"author\":{\"name\":\"Jeff Morris, Senior Software Engineer, Couchbase\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/b678bdd9f7b21a33d43ea965865a3341\"},\"headline\":\"Introducing Linq2Couchbase Developer Preview 1: The Linq provider for Couchbase N1QL!\",\"datePublished\":\"2015-12-17T00:21:32+00:00\",\"dateModified\":\"2025-06-14T04:02:08+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/introducing-linq2couchbase-developer-preview-1-the-linq-provider-for-couchbase-n1ql\/\"},\"wordCount\":806,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/introducing-linq2couchbase-developer-preview-1-the-linq-provider-for-couchbase-n1ql\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"keywords\":[\"Linq\",\"linq2couchbase\"],\"articleSection\":[\".NET\",\"Application Design\",\"C#\",\"SQL++ \/ N1QL Query\",\"Tools &amp; SDKs\"],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/introducing-linq2couchbase-developer-preview-1-the-linq-provider-for-couchbase-n1ql\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/introducing-linq2couchbase-developer-preview-1-the-linq-provider-for-couchbase-n1ql\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/introducing-linq2couchbase-developer-preview-1-the-linq-provider-for-couchbase-n1ql\/\",\"name\":\"Developer Preview 1 : The Linq provider for Couchbase N1QL!\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/introducing-linq2couchbase-developer-preview-1-the-linq-provider-for-couchbase-n1ql\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/introducing-linq2couchbase-developer-preview-1-the-linq-provider-for-couchbase-n1ql\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2015-12-17T00:21:32+00:00\",\"dateModified\":\"2025-06-14T04:02:08+00:00\",\"description\":\"Learn basic functionality of the Linq provider by checking out sample application that goes over the steps on how to use the provider today.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/introducing-linq2couchbase-developer-preview-1-the-linq-provider-for-couchbase-n1ql\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/introducing-linq2couchbase-developer-preview-1-the-linq-provider-for-couchbase-n1ql\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/introducing-linq2couchbase-developer-preview-1-the-linq-provider-for-couchbase-n1ql\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"width\":1800,\"height\":630},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/introducing-linq2couchbase-developer-preview-1-the-linq-provider-for-couchbase-n1ql\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Introducing Linq2Couchbase Developer Preview 1: The Linq provider for Couchbase N1QL!\"}]},{\"@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\/b678bdd9f7b21a33d43ea965865a3341\",\"name\":\"Jeff Morris, Senior Software Engineer, Couchbase\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/73188ee2831025d81740e12e1ed80812\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/5f910befdbd58de8bac85293df7f544680843061ecc921ba7d293d6d52076ab3?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/5f910befdbd58de8bac85293df7f544680843061ecc921ba7d293d6d52076ab3?s=96&d=mm&r=g\",\"caption\":\"Jeff Morris, Senior Software Engineer, Couchbase\"},\"description\":\"Jeff Morris is a Senior Software Engineer at Couchbase. Prior to joining Couchbase, Jeff spent six years at Source Interlink as an Enterprise Web Architect. Jeff is responsible for the development of Couchbase SDKs and how to integrate with N1QL (query language).\",\"sameAs\":[\"https:\/\/x.com\/jeffrysmorris\"],\"url\":\"https:\/\/www.couchbase.com\/blog\/pt\/author\/jeff-morris\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Developer Preview 1: O provedor Linq para o Couchbase N1QL!","description":"Aprenda a funcionalidade b\u00e1sica do provedor Linq conferindo o aplicativo de amostra que aborda as etapas de como usar o provedor hoje.","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\/introducing-linq2couchbase-developer-preview-1-the-linq-provider-for-couchbase-n1ql\/","og_locale":"pt_BR","og_type":"article","og_title":"Introducing Linq2Couchbase Developer Preview 1: The Linq provider for Couchbase N1QL!","og_description":"Learn basic functionality of the Linq provider by checking out sample application that goes over the steps on how to use the provider today.","og_url":"https:\/\/www.couchbase.com\/blog\/pt\/introducing-linq2couchbase-developer-preview-1-the-linq-provider-for-couchbase-n1ql\/","og_site_name":"The Couchbase Blog","article_published_time":"2015-12-17T00:21:32+00:00","article_modified_time":"2025-06-14T04:02:08+00:00","author":"Jeff Morris, Senior Software Engineer, Couchbase","twitter_card":"summary_large_image","twitter_creator":"@jeffrysmorris","twitter_misc":{"Written by":"Jeff Morris, Senior Software Engineer, Couchbase","Est. reading time":"4 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/introducing-linq2couchbase-developer-preview-1-the-linq-provider-for-couchbase-n1ql\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/introducing-linq2couchbase-developer-preview-1-the-linq-provider-for-couchbase-n1ql\/"},"author":{"name":"Jeff Morris, Senior Software Engineer, Couchbase","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/b678bdd9f7b21a33d43ea965865a3341"},"headline":"Introducing Linq2Couchbase Developer Preview 1: The Linq provider for Couchbase N1QL!","datePublished":"2015-12-17T00:21:32+00:00","dateModified":"2025-06-14T04:02:08+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/introducing-linq2couchbase-developer-preview-1-the-linq-provider-for-couchbase-n1ql\/"},"wordCount":806,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/introducing-linq2couchbase-developer-preview-1-the-linq-provider-for-couchbase-n1ql\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","keywords":["Linq","linq2couchbase"],"articleSection":[".NET","Application Design","C#","SQL++ \/ N1QL Query","Tools &amp; SDKs"],"inLanguage":"pt-BR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/introducing-linq2couchbase-developer-preview-1-the-linq-provider-for-couchbase-n1ql\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/introducing-linq2couchbase-developer-preview-1-the-linq-provider-for-couchbase-n1ql\/","url":"https:\/\/www.couchbase.com\/blog\/introducing-linq2couchbase-developer-preview-1-the-linq-provider-for-couchbase-n1ql\/","name":"Developer Preview 1: O provedor Linq para o Couchbase N1QL!","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/introducing-linq2couchbase-developer-preview-1-the-linq-provider-for-couchbase-n1ql\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/introducing-linq2couchbase-developer-preview-1-the-linq-provider-for-couchbase-n1ql\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2015-12-17T00:21:32+00:00","dateModified":"2025-06-14T04:02:08+00:00","description":"Aprenda a funcionalidade b\u00e1sica do provedor Linq conferindo o aplicativo de amostra que aborda as etapas de como usar o provedor hoje.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/introducing-linq2couchbase-developer-preview-1-the-linq-provider-for-couchbase-n1ql\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/introducing-linq2couchbase-developer-preview-1-the-linq-provider-for-couchbase-n1ql\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/introducing-linq2couchbase-developer-preview-1-the-linq-provider-for-couchbase-n1ql\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","width":1800,"height":630},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/introducing-linq2couchbase-developer-preview-1-the-linq-provider-for-couchbase-n1ql\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Introducing Linq2Couchbase Developer Preview 1: The Linq provider for Couchbase N1QL!"}]},{"@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\/b678bdd9f7b21a33d43ea965865a3341","name":"Jeff Morris, engenheiro de software s\u00eanior, Couchbase","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/73188ee2831025d81740e12e1ed80812","url":"https:\/\/secure.gravatar.com\/avatar\/5f910befdbd58de8bac85293df7f544680843061ecc921ba7d293d6d52076ab3?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/5f910befdbd58de8bac85293df7f544680843061ecc921ba7d293d6d52076ab3?s=96&d=mm&r=g","caption":"Jeff Morris, Senior Software Engineer, Couchbase"},"description":"Jeff Morris \u00e9 engenheiro de software s\u00eanior da Couchbase. Antes de ingressar na Couchbase, Jeff passou seis anos na Source Interlink como arquiteto da Web corporativa. Jeff \u00e9 respons\u00e1vel pelo desenvolvimento dos SDKs do Couchbase e pela integra\u00e7\u00e3o com o N1QL (linguagem de consulta).","sameAs":["https:\/\/x.com\/jeffrysmorris"],"url":"https:\/\/www.couchbase.com\/blog\/pt\/author\/jeff-morris\/"}]}},"authors":[{"term_id":8970,"user_id":21,"is_guest":0,"slug":"jeff-morris","display_name":"Jeff Morris, Senior Software Engineer, Couchbase","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/5f910befdbd58de8bac85293df7f544680843061ecc921ba7d293d6d52076ab3?s=96&d=mm&r=g","author_category":"","last_name":"Jeff Morris, Senior Software Engineer, Couchbase","first_name":"Jeff","job_title":"","user_url":"","description":"Jeff Morris \u00e9 engenheiro de software s\u00eanior da Couchbase. Antes de ingressar na Couchbase, Jeff passou seis anos na Source Interlink como arquiteto da Web corporativa. Jeff \u00e9 respons\u00e1vel pelo desenvolvimento dos SDKs do Couchbase e pela integra\u00e7\u00e3o com o N1QL (linguagem de consulta)."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/1963","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\/21"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/comments?post=1963"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/1963\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media\/13873"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media?parent=1963"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/categories?post=1963"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/tags?post=1963"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/ppma_author?post=1963"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}