<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://msmvps.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Andrey Sanches </title><link>http://msmvps.com/blogs/andreysanches/default.aspx</link><description>é MVP em ASP/ASP.NET e escreve sobre desenvolvimento WEB com tecnologias Microsoft</description><dc:language>en</dc:language><generator>CommunityServer 2008.5 SP2 (Build: 40407.4157)</generator><item><title>[Evento] Microsoft Techday – São Paulo</title><link>http://msmvps.com/blogs/andreysanches/archive/2009/11/03/evento-microsoft-techday-s-227-o-paulo.aspx</link><pubDate>Tue, 03 Nov 2009 17:18:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1737391</guid><dc:creator>andrey</dc:creator><slash:comments>0</slash:comments><comments>http://msmvps.com/blogs/andreysanches/archive/2009/11/03/evento-microsoft-techday-s-227-o-paulo.aspx#comments</comments><description>&lt;p&gt;Ol&amp;aacute; Amigos,&lt;/p&gt;
&lt;p&gt;Essa semana teremos o &lt;a href="http://www.unip.br/universidade/campi/anchieta.aspx" title="MS Tech Day na UNIP Anchieta"&gt;MS Tech Day na UNIP Anchieta&lt;/a&gt;&amp;nbsp;e eu vou ministrar uma palestra com muitas dicas e truques sobre desenvolvimento WEB com ASP.NET 3.5 e Visual Studio 2008&lt;/p&gt;
&lt;p&gt;Fa&amp;ccedil;am suas inscri&amp;ccedil;&amp;otilde;es e n&amp;atilde;o percam essa oportunidade de agregar mais conhecimento.&lt;br /&gt;&lt;br /&gt;Este evento, &amp;eacute; uma realiza&amp;ccedil;&amp;atilde;o das comunidades &lt;a target="_blank" href="http://www.mcpbrasil.com/"&gt;MCP Brasil.com&lt;/a&gt;, &lt;a target="_blank" href="http://www.winsec.org/"&gt;Winsec.org&lt;/a&gt;, &lt;a target="_blank" href="http://www.codificando.net/"&gt;Codificando.Net&lt;/a&gt; e &lt;a target="_blank" href="http://www.canalsystemcenter.com.br/"&gt;Canal System Center&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;A grade completa das palestras, e mais informa&amp;ccedil;&amp;otilde;es est&amp;atilde;o no site &lt;a target="_blank" href="http://www.mstechday.com"&gt;www.mstechday.com&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;At&amp;eacute; l&amp;aacute; !!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1737391" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/andreysanches/archive/tags/asp.net/default.aspx">asp.net</category><category domain="http://msmvps.com/blogs/andreysanches/archive/tags/.net/default.aspx">.net</category><category domain="http://msmvps.com/blogs/andreysanches/archive/tags/eventos/default.aspx">eventos</category></item><item><title>MVP Night - Mais um evento on-line Codificando.Net</title><link>http://msmvps.com/blogs/andreysanches/archive/2009/10/07/mvp-night-mais-um-evento-on-line-codificando-net.aspx</link><pubDate>Wed, 07 Oct 2009 17:02:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1730648</guid><dc:creator>andrey</dc:creator><slash:comments>0</slash:comments><comments>http://msmvps.com/blogs/andreysanches/archive/2009/10/07/mvp-night-mais-um-evento-on-line-codificando-net.aspx#comments</comments><description>&lt;p&gt;Fala galera, no dia 08/10 (pr&amp;oacute;xima quinta-feira) realizaremos a noite o evento MVP Night, sendo o segundo do g&amp;ecirc;nero realizado por n&amp;oacute;s do Codificando .Net. &lt;br /&gt;Neste evento, falaremos do seguinte:&lt;/p&gt;
&lt;p&gt;20h00 &amp;ndash; Diego Nogare &lt;br /&gt;SAD &amp;ndash; SQL Server Azure&lt;/p&gt;
&lt;p&gt;21h00 &amp;ndash; Andrey Sanches &lt;br /&gt;Introdu&amp;ccedil;&amp;atilde;o ao LINQ com ASP .NET&lt;/p&gt;
&lt;p&gt;22h00 &amp;ndash; Alexandre Tarifa &lt;br /&gt;Visual Basic 2010 &amp;ndash; Evolu&amp;ccedil;&amp;atilde;o e Futuro da linguagem.&lt;/p&gt;
&lt;p&gt;Mais detalhes e inscri&amp;ccedil;&amp;atilde;o &lt;a target="_blank" href="http://comunidade.codificando.net/page/mvp-night-evento-online" title="Inscreva-se"&gt;CLIQUE AQUI&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;At&amp;eacute; l&amp;aacute; !!!!!!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1730648" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/andreysanches/archive/tags/eventos/default.aspx">eventos</category></item><item><title>Série LINQ to SQL Parte 6 - Atualizando registros com LINQ to SQL</title><link>http://msmvps.com/blogs/andreysanches/archive/2009/10/06/s-233-rie-linq-to-sql-parte-6-atualizando-registros-com-linq-to-sql.aspx</link><pubDate>Tue, 06 Oct 2009 20:42:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1730319</guid><dc:creator>andrey</dc:creator><slash:comments>0</slash:comments><comments>http://msmvps.com/blogs/andreysanches/archive/2009/10/06/s-233-rie-linq-to-sql-parte-6-atualizando-registros-com-linq-to-sql.aspx#comments</comments><description>&lt;p&gt;Nesse post, para finalizar a s&amp;eacute;rie de LINQ to SQL, vou demonstrar como atualizar registros de uma tabela utilizando a query do LINQ.&lt;/p&gt;
&lt;p&gt;O C&amp;oacute;dgo abaixo atualiza os dados de um &lt;strong&gt;Produto&lt;/strong&gt; que &amp;eacute; recuperado atrav&amp;eacute;s do seu ID. Veja como &amp;eacute; simples a atualiza&amp;ccedil;&amp;atilde;o do objeto em banco de dados.&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;public&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;void&lt;/span&gt;&lt;span style="color:#000000;"&gt; AtualizarProduto(&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;int&lt;/span&gt;&lt;span style="color:#000000;"&gt; idProduto)&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="color:#000000;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="color:#000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR:#2b91af;"&gt;BlogLinqDemoDataContext&lt;/span&gt;&lt;span style="color:#000000;"&gt; bd = &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="COLOR:#2b91af;"&gt;BlogLinqDemoDataContext&lt;/span&gt;&lt;span style="color:#000000;"&gt;();&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="color:#000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR:#2b91af;"&gt;Produto&lt;/span&gt;&lt;span style="color:#000000;"&gt; QueryProduto = bd.Produtos.Single(p =&amp;gt; p.ProdutoID == idProduto);&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="color:#000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="color:#000000;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;QueryProduto.Descricao = &lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;&amp;quot;Ferro&amp;quot;&lt;/span&gt;&lt;span style="color:#000000;"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="color:#000000;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;QueryProduto.CategProdID = 1;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="color:#000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="color:#000000;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;bd.SubmitChanges();&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="color:#000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="color:#000000;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&amp;nbsp;O m&amp;eacute;todo &lt;strong&gt;AtualizarProduto&lt;/strong&gt; recebe por par&amp;acirc;metro&amp;nbsp;o&amp;nbsp;ID do produto &amp;agrave; ser atualizado. Veja &amp;eacute; feito uma query LINQ para recuperar do banco de dados o Produto correspondente. Ap&amp;oacute;s a recupera&amp;ccedil;&amp;atilde;o, basta atribuir os novos valores para o objeto e chamar o m&amp;eacute;todo &lt;strong&gt;SubmitChanges() &lt;/strong&gt;para que a atualiza&amp;ccedil;&amp;atilde;o seja efetuada no banco de dados destino.&lt;/p&gt;
&lt;p class="MsoNormal"&gt;Com esse &amp;uacute;ltimo post, vimos como &amp;eacute; simples utilizar da LINQ to SQL para manipular objetos de banco de dados e tamb&amp;eacute;m como construir a sua camada de persist&amp;ecirc;ncia com as principais opera&amp;ccedil;&amp;otilde;es de banco de dados.&lt;br /&gt;&lt;br /&gt;Espero que tenha sido &amp;uacute;til e deixo abaixo alguns &amp;quot;links&amp;quot; para consulta e estudos mais aprofundados &lt;img src="http://msmvps.com/emoticons/emotion-2.gif" alt="Big Smile" /&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;101 linq samples - &lt;a href="http://msdn.microsoft.com/en-us/vcsharp/aa336746.aspx"&gt;http://msdn.microsoft.com/en-us/vcsharp/aa336746.aspx&lt;/a&gt;&lt;br /&gt;Videos de LINQ - &lt;a href="http://www.asp.net/learn/linq-videos/"&gt;http://www.asp.net/learn/linq-videos/&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1730319" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/andreysanches/archive/tags/linq/default.aspx">linq</category><category domain="http://msmvps.com/blogs/andreysanches/archive/tags/MSDN/default.aspx">MSDN</category></item><item><title>Série LINQ to SQL Parte 5 - Criando querys com JOIN entre tabelas </title><link>http://msmvps.com/blogs/andreysanches/archive/2009/09/24/s-233-rie-linq-to-sql-parte-5-criando-querys-com-join-entre-tabelas.aspx</link><pubDate>Thu, 24 Sep 2009 12:39:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1726327</guid><dc:creator>andrey</dc:creator><slash:comments>6</slash:comments><comments>http://msmvps.com/blogs/andreysanches/archive/2009/09/24/s-233-rie-linq-to-sql-parte-5-criando-querys-com-join-entre-tabelas.aspx#comments</comments><description>&lt;p&gt;Como voc&amp;ecirc;s j&amp;aacute; devem ter percebido, a linguagem LINQ &amp;eacute; muito semelhante a uma query SQL&amp;nbsp;e essa tem sido uma das grandes vantagens do LINQ.&lt;/p&gt;
&lt;p&gt;Nesse post vamos explorar mais um desses recursos, a utiliza&amp;ccedil;&amp;atilde;o de JOIN entre duas tabelas em uma consulta e faremos o bind do resultado em um gridView do ASP.NET&lt;br /&gt;&lt;br /&gt;Crie uma nova p&amp;aacute;gina &lt;strong&gt;ListarTodosProdutos.aspx&lt;/strong&gt; e desenhe o leiaute como da seguinte forma:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/andreysanches/7853.gridJoin.JPG"&gt;&lt;img border="0" src="http://msmvps.com/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/andreysanches/7853.gridJoin.JPG" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Em seguida, clique duas vezes sobre o form e codifique o evento &lt;strong&gt;Page_Load()&lt;/strong&gt; conforme o c&amp;oacute;digo abaixo:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:10pt;color:blue;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;mso-ansi-language:EN-US;" lang="EN-US"&gt;protected&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;mso-ansi-language:EN-US;" lang="EN-US"&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; Page_Load(&lt;span style="color:blue;"&gt;object&lt;/span&gt; sender, &lt;span style="color:#2b91af;"&gt;EventArgs&lt;/span&gt; e)&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;mso-ansi-language:EN-US;" lang="EN-US"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;mso-ansi-language:EN-US;" lang="EN-US"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;BlogLinqDemoDataContext&lt;/span&gt; db = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;BlogLinqDemoDataContext&lt;/span&gt;();&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;mso-ansi-language:EN-US;" lang="EN-US"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; query = &lt;span style="color:blue;"&gt;from&lt;/span&gt; p &lt;span style="color:blue;"&gt;in&lt;/span&gt; db.Produtos&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;mso-ansi-language:EN-US;" lang="EN-US"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;join&lt;/span&gt; c &lt;span style="color:blue;"&gt;in&lt;/span&gt; db.CategoriaProdutos &lt;span style="color:blue;"&gt;on&lt;/span&gt; p.CategProdID &lt;span style="color:blue;"&gt;equals&lt;/span&gt; c.CategProdID&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;mso-ansi-language:EN-US;" lang="EN-US"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;select&lt;/span&gt; &lt;span style="color:blue;"&gt;new&lt;/span&gt; {&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;mso-ansi-language:EN-US;" lang="EN-US"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;ID = p.ProdutoID,&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;mso-ansi-language:EN-US;" lang="EN-US"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;Produto = p.Descricao,&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Categoria = c.Descricao };&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;mso-ansi-language:EN-US;" lang="EN-US"&gt;GridView1.DataSource = query;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;mso-ansi-language:EN-US;" lang="EN-US"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;GridView1.DataBind();&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;mso-ansi-language:EN-US;" lang="EN-US"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Veja que a query do LINQ &amp;eacute; muito parecida com uma query T-SQL. &amp;Eacute; feito uma query na tabela de Produtos com um JOIN com a tabela de CategoriaProdutos a fim de recuperar a descri&amp;ccedil;&amp;atilde;o da Categoria. Em seguida o select new determina quais campos ser&amp;atilde;o selecionados e inclusive escolhendo alias para cada campo. Ao efetuar o bind no GridView, &amp;eacute; poss&amp;iacute;vel ver a execu&amp;ccedil;&amp;atilde;o conforme tela abaixo:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/andreysanches/5126.gridJoinExecucao.JPG"&gt;&lt;img border="0" src="http://msmvps.com/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/andreysanches/5126.gridJoinExecucao.JPG" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2 class="MsoNormal"&gt;Outros tipos de JOINS&lt;/h2&gt;
&lt;p class="MsoNormal"&gt;No exemplo acima executamos o conhecido INNER JOIN, mas &amp;eacute; claro que poder&amp;iacute;amos executar outros tipos de join como LEFT JOIN, RIGHT JOIN, etc. Veja os pr&amp;oacute;ximos exemplos:&lt;br /&gt;&lt;br /&gt;LEFT JOIN&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;var&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt; query = &lt;span style="COLOR:blue;"&gt;from&lt;/span&gt; produtos &lt;span style="COLOR:blue;"&gt;in&lt;/span&gt; db.Produtos&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;mso-ansi-language:EN-US;" lang="EN-US"&gt;join&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;mso-ansi-language:EN-US;" lang="EN-US"&gt; categorias &lt;span style="COLOR:blue;"&gt;in&lt;/span&gt; db.CategoriaProdutos &lt;span style="COLOR:blue;"&gt;on&lt;/span&gt; produtos.CategProdID &lt;span style="COLOR:blue;"&gt;equals&lt;/span&gt; categorias.CategProdID &lt;strong&gt;&lt;span style="COLOR:blue;"&gt;into&lt;/span&gt; &lt;span style="text-decoration:underline;"&gt;x&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;mso-ansi-language:EN-US;" lang="EN-US"&gt;&lt;strong&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="text-decoration:underline;"&gt;from&lt;/span&gt;&lt;/span&gt;&lt;span style="text-decoration:underline;"&gt; categorias &lt;span style="COLOR:blue;"&gt;in&lt;/span&gt; x.DefaultIfEmpty()&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;mso-ansi-language:EN-US;" lang="EN-US"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;select&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;new&lt;/span&gt; {&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;mso-ansi-language:EN-US;" lang="EN-US"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;ID = produtos.ProdutoID,&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;mso-ansi-language:EN-US;" lang="EN-US"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;Produto = produtos.Descricao,&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Categoria = categorias.Descricao };&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;No exemplo acima s&amp;atilde;o exibidos todos os produtos que possuam ou n&amp;atilde;o categorias relacionadas. No caso dos produtos sem categoria, retorna NULL. Coloquei &lt;span style="text-decoration:underline;"&gt;&lt;strong&gt;sublinhando&amp;nbsp;&amp;nbsp; &lt;/strong&gt;&lt;/span&gt;o que difere de um INNER JOIN que &amp;eacute; o fato de atribuir o relacionamento &amp;agrave; um objeto que dei o nome de &amp;quot;x&amp;quot; e depois informar que a tabela de &lt;strong&gt;CategoriaProdutos&lt;/strong&gt; &amp;eacute; &lt;em&gt;DefaultIfEmpty()&lt;/em&gt; informando que se n&amp;atilde;o houver categoria o Produto sera exibido da mesma forma.&lt;/p&gt;
&lt;p class="MsoNormal"&gt;RIGHT JOIN&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;color:blue;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;var&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt; query = &lt;span style="color:blue;"&gt;from&lt;/span&gt; produtos &lt;span style="color:blue;"&gt;in&lt;/span&gt; &lt;strong&gt;&lt;span style="text-decoration:underline;"&gt;db.Produtos.DefaultIfEmpty()&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;join&lt;/span&gt; categorias &lt;span style="color:blue;"&gt;in&lt;/span&gt; db.CategoriaProdutos &lt;span style="color:blue;"&gt;on&lt;/span&gt; produtos.CategProdID &lt;span style="color:blue;"&gt;equals&lt;/span&gt; categorias.CategProdID &lt;span style="text-decoration:underline;"&gt;&lt;strong&gt;&lt;span style="color:blue;"&gt;into&lt;/span&gt; x&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="text-decoration:underline;"&gt;&lt;strong&gt;&lt;span style="font-size:10pt;color:blue;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;mso-ansi-language:EN-US;" lang="EN-US"&gt;from&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;mso-ansi-language:EN-US;" lang="EN-US"&gt; prod &lt;span style="color:blue;"&gt;in&lt;/span&gt; x&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;mso-ansi-language:EN-US;" lang="EN-US"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;select&lt;/span&gt; &lt;span style="color:blue;"&gt;new&lt;/span&gt; {&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;mso-ansi-language:EN-US;" lang="EN-US"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;ID = prod.CategProdID,&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Categoria = prod.Descricao};&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;No exemplo acima s&amp;atilde;o&amp;nbsp;exibidos todos as categorias que possuam produtos relacionadas. O resultado dessa query ser&amp;aacute; esse:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/andreysanches/6303.rightjoincateg.JPG"&gt;&lt;img border="0" width="549" src="http://msmvps.com/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/andreysanches/6303.rightjoincateg.JPG" height="182" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;No pr&amp;oacute;ximo post dessa s&amp;eacute;rie,&amp;nbsp;vou mostrar como executar querys utilizando recursos de GROUP, SELECT IN e outros. &lt;br /&gt;&lt;br /&gt;At&amp;eacute; l&amp;aacute;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1726327" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/andreysanches/archive/tags/linq/default.aspx">linq</category><category domain="http://msmvps.com/blogs/andreysanches/archive/tags/MSDN/default.aspx">MSDN</category></item><item><title>Série LINQ to SQL Parte 4 - Recuperando um registro específico com LINQ</title><link>http://msmvps.com/blogs/andreysanches/archive/2009/09/21/s-233-rie-linq-parte-4-executando-consultas-com-linq.aspx</link><pubDate>Mon, 21 Sep 2009 21:47:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1725561</guid><dc:creator>andrey</dc:creator><slash:comments>0</slash:comments><comments>http://msmvps.com/blogs/andreysanches/archive/2009/09/21/s-233-rie-linq-parte-4-executando-consultas-com-linq.aspx#comments</comments><description>&lt;p&gt;Em continua&amp;ccedil;&amp;atilde;o &amp;agrave; s&amp;eacute;rie LINQ to SQL, nesse post veremos como fazer query dos dados em banco e o bind diretamente em controles ASP.NET. Nesse exemplo iremos:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Codificar o m&amp;eacute;todo que retornar&amp;aacute; um objeto produto;&lt;/li&gt;
&lt;li&gt;Codificar o preenchimento do objeto na UI&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Query em registros &amp;uacute;nicos&lt;/h3&gt;
&lt;p&gt;Na classe &lt;strong&gt;beProduto.cs&lt;/strong&gt; crie o m&amp;eacute;todo para recuperar um produto espec&amp;iacute;fico. Segue abaixo o c&amp;oacute;digo:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;public&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="COLOR:#2b91af;"&gt;Produto&lt;/span&gt;&lt;span style="color:#000000;"&gt; RecuperarProduto(&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;int&lt;/span&gt;&lt;span style="color:#000000;"&gt; idProduto)&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="color:#000000;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="color:#000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR:#2b91af;"&gt;BlogLinqDemoDataContext&lt;/span&gt;&lt;span style="color:#000000;"&gt; bd = &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="COLOR:#2b91af;"&gt;BlogLinqDemoDataContext&lt;/span&gt;&lt;span style="color:#000000;"&gt;();&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="color:#000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;try&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="color:#000000;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="color:#000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR:#2b91af;"&gt;Produto&lt;/span&gt;&lt;span style="color:#000000;"&gt; oProduto = bd.Produtos.Single(p =&amp;gt; p.ProdutoID == idProduto);&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="color:#000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;return&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="color:#000000;"&gt; oProduto;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="color:#000000;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="color:#000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;catch&lt;/span&gt;&lt;span style="color:#000000;"&gt; (&lt;/span&gt;&lt;span style="COLOR:#2b91af;"&gt;InvalidOperationException&lt;/span&gt;&lt;span style="color:#000000;"&gt;)&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="color:#000000;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;span style="color:#000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;throw&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="COLOR:#2b91af;"&gt;ApplicationException&lt;/span&gt;&lt;span style="color:#000000;"&gt;(&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;&amp;quot;Produto n&amp;atilde;o encontrado !&amp;quot;&lt;/span&gt;&lt;span style="color:#000000;"&gt;);&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="color:#000000;"&gt;&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;LINE-HEIGHT:115%;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="color:#000000;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&amp;nbsp;Com apenas 3 linhas de c&amp;oacute;digo &amp;eacute; poss&amp;iacute;vel fazer a recupera&amp;ccedil;&amp;atilde;o do objeto. Veja que se o objeto n&amp;atilde;o foi localizado, o .net dispara uma exce&amp;ccedil;&amp;atilde;o do tipo &lt;em&gt;InvalidOperationException&lt;/em&gt; que poder&amp;aacute; ser tratada e exibida a mensagem de produto inexistente.&lt;br /&gt;&lt;br /&gt;Antes mesmo de eu explicar todos voc&amp;ecirc;s j&amp;aacute; deviam ter adivinhado, inclusive no post anterior, que estamos fazendo uma query na tabela de &lt;strong&gt;Produtos &lt;/strong&gt;pois&amp;nbsp;o c&amp;oacute;digo &amp;eacute; muito intuitivo. Essa &amp;eacute; a id&amp;eacute;ia do LINQ, fazer ser simples algo que antes costumava dar um trabalho que sempre era repetitivo.&lt;/p&gt;
&lt;p class="MsoNormal"&gt;Em seguida, codifique a UI para recuperar e exibir o objeto:&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&amp;nbsp;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;protected&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; btBuscar_Click(&lt;span style="color:blue;"&gt;object&lt;/span&gt; sender, &lt;span style="color:#2b91af;"&gt;EventArgs&lt;/span&gt; e)&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;beProduto&lt;/span&gt; beoProduto = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;beProduto&lt;/span&gt;();&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;try&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Produto&lt;/span&gt; oProduto = beoProduto.RecuperarProduto(&lt;span style="color:#2b91af;"&gt;Convert&lt;/span&gt;.ToInt32(txtCodigoProduto.Text));&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;txtDescricao.Text = oProduto.Descricao;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;txtValor.Text = oProduto.Valor.ToString(&lt;span style="color:#a31515;"&gt;&amp;quot;N&amp;quot;&lt;/span&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;ddlCategoria.SelectedValue = oProduto.CategProdID.ToString();&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;catch&lt;/span&gt; (&lt;span style="color:#2b91af;"&gt;Exception&lt;/span&gt; ex)&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;lblerro.Text = ex.Message;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Dessa forma &amp;eacute; poss&amp;iacute;vel fazer a recupera&amp;ccedil;&amp;atilde;o do objeto e exibi&amp;ccedil;&amp;atilde;o dele nos controles. Veja que para acessar a categoria do produto eu fiz acesso &amp;agrave; propriedade &lt;strong&gt;CategProdID&lt;/strong&gt; do objeto Produto.&lt;br /&gt;&lt;br /&gt;Fiquem atentos com a continuidade dessa s&amp;eacute;rie e execute os exemplos passo-a-passo pois &amp;eacute; a melhor forma de aprender, &lt;a target="_blank" href="http://www.treinando.net"&gt;fazendo na pr&amp;aacute;tica&lt;/a&gt; :)&lt;br /&gt;&lt;br /&gt;At&amp;eacute; o pr&amp;oacute;ximo post e aguardo coment&amp;aacute;rios &lt;img src="http://msmvps.com/emoticons/emotion-21.gif" alt="Yes" /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1725561" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/andreysanches/archive/tags/linq/default.aspx">linq</category><category domain="http://msmvps.com/blogs/andreysanches/archive/tags/MSDN/default.aspx">MSDN</category></item><item><title>Série LINQ to SQL Parte 3 - Inserindo registros no Banco de Dados SQL Server</title><link>http://msmvps.com/blogs/andreysanches/archive/2009/09/17/s-233-rie-linq-parte-3-inserindo-registros-no-banco-de-dados-sql-server.aspx</link><pubDate>Thu, 17 Sep 2009 21:38:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1724556</guid><dc:creator>andrey</dc:creator><slash:comments>0</slash:comments><comments>http://msmvps.com/blogs/andreysanches/archive/2009/09/17/s-233-rie-linq-parte-3-inserindo-registros-no-banco-de-dados-sql-server.aspx#comments</comments><description>&lt;p&gt;Continuando a s&amp;eacute;rie LINQ to SQL , nesse post iremos incluir um registro de Produto na Base de Dados SQL Server utilizando LINQ.&lt;/p&gt;
&lt;p&gt;Crie uma nova p&amp;aacute;gina por nome &lt;strong&gt;/LINQ/Cadastro.aspx &lt;/strong&gt;e desenho seu layout conforme mostra figura abaixo:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/andreysanches/5126.cadastrodesign.JPG"&gt;&lt;img border="0" src="http://msmvps.com/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/andreysanches/5126.cadastrodesign.JPG" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Ap&amp;oacute;s a cria&amp;ccedil;&amp;atilde;o da P&amp;aacute;gina, crie duas classes na pasta &lt;strong&gt;App_Code&lt;/strong&gt; do seu WebSite por nomes &lt;strong&gt;beProduto.cs&lt;/strong&gt; e &lt;strong&gt;beCategoriaProduto.cs&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Codifique a classe &lt;strong&gt;beProduto.cs&lt;/strong&gt; conforme mostra o c&amp;oacute;digo abaixo:&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;color:blue;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;using&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt; System;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:blue;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;using&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt; System.Collections.Generic;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:blue;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;using&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt; System.Linq;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:blue;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;using&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt; System.Web;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;color:gray;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;///&lt;/span&gt;&lt;span style="font-size:10pt;color:green;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt; &lt;/span&gt;&lt;span style="font-size:10pt;color:gray;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&amp;lt;summary&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:gray;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;///&lt;/span&gt;&lt;span style="font-size:10pt;color:green;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt; Summary description for beProduto&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:gray;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;///&lt;/span&gt;&lt;span style="font-size:10pt;color:green;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt; &lt;/span&gt;&lt;span style="font-size:10pt;color:gray;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;color:blue;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;public&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt; &lt;span style="color:blue;"&gt;class&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;beProduto&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; beProduto()&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="mso-tab-count:2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;//&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="mso-tab-count:2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;// TODO: Add constructor logic here&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="mso-tab-count:2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;//&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; GravarProduto(&lt;span style="color:#2b91af;"&gt;Produto&lt;/span&gt; oProduto)&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;BloqLinqDemoDataContext&lt;/span&gt; bd = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;BloqLinqDemoDataContext&lt;/span&gt;();&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;bd.Produtos.InsertOnSubmit(oProduto);&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;bd.SubmitChanges();&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;}&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Veja que &amp;eacute; criado um m&amp;eacute;todo que recebe um objeto do tipo &lt;strong&gt;Produto&lt;/strong&gt; por par&amp;acirc;metro. Essa classe &lt;strong&gt;Produto&lt;/strong&gt; &amp;eacute; a pr&amp;oacute;pria classe criada pelo LINQ no momento da modelagem.&lt;br /&gt;O objeto &lt;strong&gt;bd&lt;/strong&gt; representa a conex&amp;atilde;o com o banco de dados e &amp;eacute; representado tamb&amp;eacute;m pela classe &lt;strong&gt;BlogLinqDemoDataContext. &lt;/strong&gt;Se voc&amp;ecirc; abrir a classe &lt;strong&gt;BlogLinqDemoDataContext&lt;/strong&gt; vai ver que o construtor padr&amp;atilde;o acessa a chave de conex&amp;atilde;o no web.config. O m&amp;eacute;todo &lt;em&gt;InsertOnSubmit()&lt;/em&gt; configura uma opera&amp;ccedil;&amp;atilde;o de &lt;em&gt;INSERT&lt;/em&gt; na query que ser&amp;aacute; montada pelo &lt;strong&gt;LINQ, &lt;/strong&gt;J&amp;aacute; o m&amp;eacute;todo &lt;em&gt;SubmitChanges()&lt;/em&gt; executa no banco de dados todas as opera&amp;ccedil;&amp;otilde;es processadas pelo &lt;strong&gt;LINQ &lt;/strong&gt;que voc&amp;ecirc; tenha programado. Isso quer dizer que voc&amp;ecirc; pode executar diversas opera&amp;ccedil;&amp;otilde;es (INSERT, UPDATE, DELETE) e enviar as altera&amp;ccedil;&amp;otilde;es de uma s&amp;oacute; vez para o banco de dados atrav&amp;eacute;s do m&amp;eacute;todo &lt;em&gt;SubmitChanges()&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;Em seguida codifique a classe &lt;strong&gt;beCategoriaProduto.cs&lt;/strong&gt; conforme mostra o c&amp;oacute;digo abaixo:&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;color:blue;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;using&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt; System;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:blue;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;using&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt; System.Collections.Generic;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:blue;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;using&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt; System.Linq;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:blue;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;using&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt; System.Web;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;color:gray;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;///&lt;/span&gt;&lt;span style="font-size:10pt;color:green;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt; &lt;/span&gt;&lt;span style="font-size:10pt;color:gray;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&amp;lt;summary&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:gray;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;///&lt;/span&gt;&lt;span style="font-size:10pt;color:green;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt; Summary description for beCategoriaProduto&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:gray;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;///&lt;/span&gt;&lt;span style="font-size:10pt;color:green;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt; &lt;/span&gt;&lt;span style="font-size:10pt;color:gray;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&amp;lt;/summary&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:blue;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;public&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt; &lt;span style="color:blue;"&gt;class&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;beCategoriaProduto&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; beCategoriaProduto()&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="mso-tab-count:2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;//&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="mso-tab-count:2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;// TODO: Add constructor logic here&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="mso-tab-count:2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;//&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;List&lt;/span&gt;&amp;lt;&lt;span style="color:#2b91af;"&gt;CategoriaProduto&lt;/span&gt;&amp;gt; ListarTodasCategorias()&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;BloqLinqDemoDataContext&lt;/span&gt; bd = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;BloqLinqDemoDataContext&lt;/span&gt;();&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; query = &lt;span style="color:blue;"&gt;from&lt;/span&gt; c &lt;span style="color:blue;"&gt;in&lt;/span&gt; bd.CategoriaProdutos&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;select&lt;/span&gt; c;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;return&lt;/span&gt; query.ToList();&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;}&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;Como voc&amp;ecirc; pode ver estamos fazendo uma query na tabela&amp;nbsp; &lt;strong&gt;CategoriaProdutos&lt;/strong&gt; e retornando TODOS os registros. O resultado da query &amp;eacute; transformada numa lista &lt;em&gt;Generics&lt;/em&gt; &lt;strong&gt;List&amp;lt;CategoriaProduto&amp;gt;.&lt;br /&gt;&lt;/strong&gt;Agora na camada de apresenta&amp;ccedil;&amp;atilde;o, ou &lt;em&gt;UI (User Interface), &lt;/em&gt;faremos a chamada para os m&amp;eacute;todos da camada de neg&amp;oacute;cio, ou &lt;em&gt;BE (Business Layer)&lt;/em&gt; para o preenchimento da lista de categorias e grava&amp;ccedil;&amp;atilde;o do Produto. Sendo assim, faremos:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Preenchimento da DropDownList de Categorias de Produtos;&lt;/li&gt;
&lt;li&gt;C&amp;oacute;digo do bot&amp;atilde;o &lt;strong&gt;Inserir &lt;/strong&gt;que vai preparar o objeto para ser persistido;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Segue abaixo o c&amp;oacute;digo para preenchimento da DropDownList de Categorias:&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;color:blue;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;protected&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; Page_Load(&lt;span style="color:blue;"&gt;object&lt;/span&gt; sender, &lt;span style="color:#2b91af;"&gt;EventArgs&lt;/span&gt; e)&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;if&lt;/span&gt; (!Page.IsPostBack)&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;beCategoriaProduto&lt;/span&gt; oCategProduto = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;beCategoriaProduto&lt;/span&gt;();&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;ddlCategoria.DataSource = oCategProduto.ListarTodasCategorias();&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;ddlCategoria.DataTextField = &lt;span style="color:#a31515;"&gt;&amp;quot;Descricao&amp;quot;&lt;/span&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;ddlCategoria.DataValueField = &lt;span style="color:#a31515;"&gt;&amp;quot;CategProdID&amp;quot;&lt;/span&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;ddlCategoria.DataBind();&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;ddlCategoria.Items.Insert(0, &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;ListItem&lt;/span&gt;(&lt;span style="color:#a31515;"&gt;&amp;quot;Selecione ...&amp;quot;&lt;/span&gt;, &lt;span style="color:#a31515;"&gt;&amp;quot;&amp;quot;&lt;/span&gt;));&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Em seguida, codifique o m&amp;eacute;todo do bot&amp;atilde;o Inserir:&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;color:blue;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;protected&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; btIncluir_Click(&lt;span style="color:blue;"&gt;object&lt;/span&gt; sender, &lt;span style="color:#2b91af;"&gt;EventArgs&lt;/span&gt; e)&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;try&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;//preenche o objeto Produto&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Produto&lt;/span&gt; oProduto = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Produto&lt;/span&gt;();&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;oProduto.Descricao = txtDescricao.Text;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;oProduto.Valor = &lt;span style="color:#2b91af;"&gt;Convert&lt;/span&gt;.ToDecimal(txtValor.Text);&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;oProduto.CategProdID = &lt;span style="color:#2b91af;"&gt;Convert&lt;/span&gt;.ToInt32(ddlCategoria.SelectedValue);&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#2b91af;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;beProduto&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt; produto = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;beProduto&lt;/span&gt;();&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;produto.GravarProduto(oProduto);&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;lblerro.Text = &lt;span style="color:#a31515;"&gt;&amp;quot;Registro inclu&amp;iacute;do com sucesso&amp;quot;&lt;/span&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;catch&lt;/span&gt; (&lt;span style="color:#2b91af;"&gt;Exception&lt;/span&gt; ex)&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;lblerro.Text = ex.Message;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:10pt;line-height:115%;font-family:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Execute a aplica&amp;ccedil;&amp;atilde;o exemplo e debugue o c&amp;oacute;digo. Veja que tudo est&amp;aacute; mais claro e simples de entender. N&amp;atilde;o precisamos nos preocupar com s&amp;iacute;ntaxe SQL, nem mesmo manipular os nativos objetos &lt;em&gt;SqlCommand, SqlConnection, DataTable&lt;/em&gt;, etc.&lt;/p&gt;
&lt;p&gt;Com certeza, o uso do &lt;strong&gt;LINQ &lt;/strong&gt;trat&amp;aacute; muita produtividade para as equipes de desenvolvimento de software.&lt;br /&gt;&lt;br /&gt;Na pr&amp;oacute;xima parte dessa s&amp;eacute;rie, veremos como criar querys com par&amp;acirc;metros, joins, group by exibindo as informa&amp;ccedil;&amp;otilde;es em controles ASP.NET, &amp;eacute; claro &lt;img src="http://msmvps.com/emoticons/emotion-21.gif" alt="Yes" /&gt;&lt;/p&gt;
&lt;p&gt;At&amp;eacute; l&amp;aacute; !!!&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1724556" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/andreysanches/archive/tags/linq/default.aspx">linq</category><category domain="http://msmvps.com/blogs/andreysanches/archive/tags/MSDN/default.aspx">MSDN</category></item><item><title>Série LINQ to SQL Parte 2 - Modelando objetos com LINQ</title><link>http://msmvps.com/blogs/andreysanches/archive/2009/09/16/s-233-rie-parte-2-modelando-objetos-com-linq.aspx</link><pubDate>Thu, 17 Sep 2009 03:30:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1723845</guid><dc:creator>andrey</dc:creator><slash:comments>0</slash:comments><comments>http://msmvps.com/blogs/andreysanches/archive/2009/09/16/s-233-rie-parte-2-modelando-objetos-com-linq.aspx#comments</comments><description>&lt;h3&gt;M&amp;atilde;o na massa&lt;/h3&gt;
&lt;p&gt;Continuando a s&amp;eacute;rie sobre LINQ to SQL , nesse post vou publicar como modelar os objetos no VS 2008 e preparar as classes para persist&amp;ecirc;ncia dos objetos em Banco de Dados.&lt;/p&gt;
&lt;p&gt;Crie um banco de dados no SQLEXPRESS por nome &lt;strong&gt;BlodDemo&lt;/strong&gt;&amp;nbsp;e duas tabelas&amp;nbsp;&lt;strong&gt;Produtos e CategoriaProdutos. &lt;/strong&gt;As duas tabelas se relacionam conforme figura abaixo.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/andreysanches/8037.diagramabanco.JPG"&gt;&lt;img border="0" src="http://msmvps.com/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/andreysanches/8037.diagramabanco.JPG" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Agora que j&amp;aacute; modelamos o banco, iremos modelar os objetos para que o LINQ crie as classes e fa&amp;ccedil;a o mapeamento com as tabelas. &lt;br /&gt;&lt;br /&gt;No&amp;nbsp;VS 2008:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Crie um projeto do tipo WebSite e na linguagem C#&lt;/li&gt;
&lt;li&gt;Clique com o bot&amp;atilde;o direito no projeto web, aponte para &lt;strong&gt;Add New Item, &lt;/strong&gt;selecione o template &lt;strong&gt;LINQ to SQL Classes&lt;/strong&gt; e d&amp;ecirc; nome de BlogLinqDemo.dbml. Veja que o VS cria o diagrama de mapeamento automaticamente.&lt;/li&gt;
&lt;li&gt;Aponte para o &lt;strong&gt;Server Explorer &lt;/strong&gt;e adicione ou localize a conex&amp;atilde;o para o banco de dados que voc&amp;ecirc; criou&lt;/li&gt;
&lt;li&gt;Localize as duas tabelas e arraste as duas tabelas para o diagrama criado. O VS j&amp;aacute; cria as classes gerando os relacionamentos necess&amp;aacute;rios. Voc&amp;ecirc; tamb&amp;eacute;m pode editar os relacionamentos clicando com o bot&amp;atilde;o direito no relacionamento&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Veja na figura abaixo o diagrama que o VS 2008 cria no momento que voc&amp;ecirc; arrasta as tabelas para o diagrama.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/andreysanches/1425.diagramaclasses.JPG"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/andreysanches/6371.diagramaclasses.JPG"&gt;&lt;img border="0" src="http://msmvps.com/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/andreysanches/6371.diagramaclasses.JPG" alt="" /&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;h3&gt;Por tr&amp;aacute;s das c&amp;acirc;meras&lt;/h3&gt;
&lt;p&gt;&amp;Eacute; claro que n&amp;atilde;o existe m&amp;aacute;gica nisso tudo. O VS &amp;eacute; somente um modelador que gera as classes que ser&amp;atilde;o executadas no seu c&amp;oacute;digo C#. &lt;br /&gt;Se voc&amp;ecirc; abrir o arquivo &lt;strong&gt;BloqLinqDemo.designer.cs &lt;/strong&gt;criado abaixo do BloqLinqDemo.dbml na &lt;strong&gt;Solution Explorer &lt;/strong&gt;ver&amp;aacute; o c&amp;oacute;digo gerado para as classes. Parte do c&amp;oacute;digo, segue abaixo:&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;[&lt;span style="COLOR:#2b91af;"&gt;Table&lt;/span&gt;(Name=&lt;span style="COLOR:#a31515;"&gt;&amp;quot;dbo.Produtos&amp;quot;&lt;/span&gt;)]&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;public&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt; &lt;span style="COLOR:blue;"&gt;partial&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;class&lt;/span&gt; &lt;span style="COLOR:#2b91af;"&gt;Produto&lt;/span&gt; : &lt;span style="COLOR:#2b91af;"&gt;INotifyPropertyChanging&lt;/span&gt;, &lt;span style="COLOR:#2b91af;"&gt;INotifyPropertyChanged&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;public&lt;/span&gt; Produto()&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-tab-count:2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;._CategoriaProduto = &lt;span style="COLOR:blue;"&gt;default&lt;/span&gt;(&lt;span style="COLOR:#2b91af;"&gt;EntityRef&lt;/span&gt;&amp;lt;&lt;span style="COLOR:#2b91af;"&gt;CategoriaProduto&lt;/span&gt;&amp;gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-no-proof:yes;"&gt;&lt;span style="mso-tab-count:2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;OnCreated();&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;[&lt;span style="COLOR:#2b91af;"&gt;Column&lt;/span&gt;(Storage=&lt;span style="COLOR:#a31515;"&gt;&amp;quot;_Descricao&amp;quot;&lt;/span&gt;, DbType=&lt;span style="COLOR:#a31515;"&gt;&amp;quot;NChar(10) NOT NULL&amp;quot;&lt;/span&gt;, CanBeNull=&lt;span style="COLOR:blue;"&gt;false&lt;/span&gt;)]&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;public&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;string&lt;/span&gt; Descricao&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="mso-tab-count:2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;get&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="mso-tab-count:2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="mso-tab-count:3;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;return&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;._Descricao&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="mso-tab-count:2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="mso-tab-count:2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;set&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="mso-tab-count:2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="mso-tab-count:3;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;if&lt;/span&gt; ((&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;._Descricao != &lt;span style="COLOR:blue;"&gt;value&lt;/span&gt;))&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="mso-tab-count:3;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="mso-tab-count:4;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;.OnDescricaoChanging(&lt;span style="COLOR:blue;"&gt;value&lt;/span&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="mso-tab-count:4;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;.SendPropertyChanging();&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="mso-tab-count:4;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;._Descricao = &lt;span style="COLOR:blue;"&gt;value&lt;/span&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="mso-tab-count:4;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;.SendPropertyChanged(&lt;span style="COLOR:#a31515;"&gt;&amp;quot;Descricao&amp;quot;&lt;/span&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="mso-tab-count:4;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;.OnDescricaoChanged();&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="mso-tab-count:3;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="mso-tab-count:2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;[&lt;span style="COLOR:#2b91af;"&gt;Column&lt;/span&gt;(Storage=&lt;span style="COLOR:#a31515;"&gt;&amp;quot;_Valor&amp;quot;&lt;/span&gt;, DbType=&lt;span style="COLOR:#a31515;"&gt;&amp;quot;Decimal(18,2) NOT NULL&amp;quot;&lt;/span&gt;)]&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;public&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;decimal&lt;/span&gt; Valor&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="mso-tab-count:2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;get&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="mso-tab-count:2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="mso-tab-count:3;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;return&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;._Valor;&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="mso-tab-count:2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="mso-tab-count:2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;set&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="mso-tab-count:2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="mso-tab-count:3;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;if&lt;/span&gt; ((&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;._Valor != &lt;span style="COLOR:blue;"&gt;value&lt;/span&gt;))&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="mso-tab-count:3;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="mso-tab-count:4;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;.OnValorChanging(&lt;span style="COLOR:blue;"&gt;value&lt;/span&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="mso-tab-count:4;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;.SendPropertyChanging();&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="mso-tab-count:4;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;._Valor = &lt;span style="COLOR:blue;"&gt;value&lt;/span&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="mso-tab-count:4;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;.SendPropertyChanged(&lt;span style="COLOR:#a31515;"&gt;&amp;quot;Valor&amp;quot;&lt;/span&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="mso-tab-count:4;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;.OnValorChanged();&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="mso-tab-count:3;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="mso-tab-count:2;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:&amp;#39;Courier New&amp;#39;;mso-ansi-language:EN-US;mso-no-proof:yes;" lang="EN-US"&gt;&lt;span style="mso-tab-count:1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Na pr&amp;oacute;xima parte dessa s&amp;eacute;rie, vamos criar um formul&amp;aacute;rio web recebendo os valores do &lt;strong&gt;Cadastro de Produtos &lt;/strong&gt;e faremos a inclus&amp;atilde;o do registro utilizando a s&amp;iacute;ntaxe do LINQ&lt;br /&gt;&lt;br /&gt;At&amp;eacute;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1723845" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/andreysanches/archive/tags/linq/default.aspx">linq</category><category domain="http://msmvps.com/blogs/andreysanches/archive/tags/MSDN/default.aspx">MSDN</category></item><item><title>Série LINQ to SQL Parte 1 - Pensamentos iniciais sobre a Language Integrated Query</title><link>http://msmvps.com/blogs/andreysanches/archive/2009/09/16/s-233-rie-linq-parte-1-pensamentos-iniciais-sobre-a-language-integrated-query.aspx</link><pubDate>Wed, 16 Sep 2009 17:07:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1723847</guid><dc:creator>andrey</dc:creator><slash:comments>2</slash:comments><comments>http://msmvps.com/blogs/andreysanches/archive/2009/09/16/s-233-rie-linq-parte-1-pensamentos-iniciais-sobre-a-language-integrated-query.aspx#comments</comments><description>&lt;p&gt;Confesso que eu tive uma grande resist&amp;ecirc;ncia ao LINQ no seu lan&amp;ccedil;amento. &lt;br /&gt;&lt;br /&gt;A minha resist&amp;ecirc;ncia se deu exatamente em n&amp;atilde;o acreditar 100% em frameworks de objeto relacional, j&amp;aacute; que os modelos que eu tinha visto at&amp;eacute; ent&amp;atilde;o feriam alguns conceitos de OO que para mim, na &amp;eacute;poca eram importantes. &lt;br /&gt;&lt;br /&gt;A minha frustra&amp;ccedil;&amp;atilde;o foi quando o LINQ chegou de vez no mercado e tomou espa&amp;ccedil;o com o desenvolvimento WEB (objetos DataSource) j&amp;aacute; que a maioria das aplica&amp;ccedil;&amp;otilde;es que eu desenvolvia eram WEB. A facilidade em fazer querys foi uma das coisas que me chamou a aten&amp;ccedil;&amp;atilde;o no LINQ, e comecei a fazer algumas DEMOS para conhecer o produto.&lt;br /&gt;&lt;br /&gt;Quando eu fiz a primeira DEMO, fiquei impressionado com a experi&amp;ecirc;ncia e a produtividade de fazer um INSERT na base de dados ... percebi que o linq estava fazendo 100% do trabalho que eu vivia escrevendo manualmente, foi quando eu comecei a perceber a quantidade de tempo que eu poderia economizar, e a padroniza&amp;ccedil;&amp;atilde;o no c&amp;oacute;digo que eu poderia gerar utilizando o LINQ, sem falar &amp;eacute; claro no mapeamento Classe X Tabela que era claro e simples de entender.&lt;br /&gt;&lt;br /&gt;Abr&amp;iacute; a classe que o LINQ gera e v&amp;iacute; como eu poderia customizar, melhorar, herdar, etc ... o meu medo era depender de um mapeamento sem poder criar as classes que eu quisesse e depender de criar classes somente para gravar na fonte de dados. Esse medo acabou depois dessa &amp;quot;olhada&amp;quot; mais a fundo no que foi gerado pelo LINQ.&lt;/p&gt;
&lt;p&gt;Se voc&amp;ecirc; &amp;eacute; um desenvolvedor de software, vai entender que o que fazemos hoje normalmente, repetitivamente e sempre &amp;eacute; exatamente isso:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Recuperar os dados da tela&lt;/li&gt;
&lt;li&gt;Preencher uma instancia de um objeto espec&amp;iacute;fico e configurar os seus valores (propriedades)&lt;/li&gt;
&lt;li&gt;Enviar para&amp;nbsp;persist&amp;ecirc;ncia na fonte de dados (banco, xml, txt, etc)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Esses 3 passos resumem basicamente uma opera&amp;ccedil;&amp;atilde;o de INSERT, UPDATE ou DELETE feito em &lt;strong&gt;qualquer aplica&amp;ccedil;&amp;atilde;o&lt;/strong&gt; que utilize conceito de armazenamento de dados. &lt;em&gt;N&amp;atilde;o vou comentar aqui sobre os c&amp;oacute;digos que fazem acesso &amp;agrave; banco de dados via ADO diretamente pela p&amp;aacute;gina ok ?&lt;/em&gt; &lt;img src="http://msmvps.com/emoticons/emotion-1.gif" alt="Smile" /&gt; &lt;/p&gt;
&lt;p&gt;O LINQ facilita as opera&amp;ccedil;&amp;otilde;es basicas de consulta e persist&amp;ecirc;ncia de objetos e gera uma grande produtividade. Al&amp;eacute;m disso pode-se customizar as classes da maneira que melhor agradar. Voc&amp;ecirc; modela o banco de dados e gera as classes que est&amp;atilde;o prontas para gravarem as informa&amp;ccedil;&amp;otilde;es na sua fonte de dados. &lt;br /&gt;&lt;br /&gt;Vou iniciar uma s&amp;eacute;rie b&amp;aacute;sica sobre LINQ to SQL (implementa&amp;ccedil;&amp;atilde;o do LINQ para SQL)&amp;nbsp;fazendo algumas&amp;nbsp;demos usando aplica&amp;ccedil;&amp;otilde;es ASP.NET e voc&amp;ecirc; conseguir&amp;aacute; acompanhar passo-a-passo os principais recursos dessa tecnologia. Logo vai perceber que o LINQ gera produtividade e garante um modelo s&amp;oacute;lido de desenvolvimento.&lt;br /&gt;&lt;br /&gt;At&amp;eacute; a pr&amp;oacute;xima !&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1723847" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/andreysanches/archive/tags/linq+MSDN/default.aspx">linq MSDN</category><category domain="http://msmvps.com/blogs/andreysanches/archive/tags/MSDN/default.aspx">MSDN</category></item><item><title>Retomando com o blog</title><link>http://msmvps.com/blogs/andreysanches/archive/2009/09/15/retomando-com-o-blog.aspx</link><pubDate>Tue, 15 Sep 2009 18:37:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1723574</guid><dc:creator>andrey</dc:creator><slash:comments>0</slash:comments><comments>http://msmvps.com/blogs/andreysanches/archive/2009/09/15/retomando-com-o-blog.aspx#comments</comments><description>&lt;p&gt;Ol&amp;aacute; Amigos,&lt;/p&gt;
&lt;p&gt;Estou retomando com o blog e vou postar muitas coisas legais que ando vendo sobre as novas tecnologias ASP.NET 3.5, C#, WPF, LINQ e muito mais.&lt;br /&gt;&lt;br /&gt;Espero que seja proveitoso &amp;agrave; todos.&lt;/p&gt;
&lt;p&gt;abs&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1723574" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/andreysanches/archive/tags/asp.net/default.aspx">asp.net</category><category domain="http://msmvps.com/blogs/andreysanches/archive/tags/c_2300_/default.aspx">c#</category><category domain="http://msmvps.com/blogs/andreysanches/archive/tags/.net/default.aspx">.net</category></item><item><title>How to find objects in Generics with List.Find() method</title><link>http://msmvps.com/blogs/andreysanches/archive/2007/04/25/how-to-find-objects-in-generics-with-list-find-method.aspx</link><pubDate>Wed, 25 Apr 2007 16:59:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:878015</guid><dc:creator>andrey</dc:creator><slash:comments>22</slash:comments><comments>http://msmvps.com/blogs/andreysanches/archive/2007/04/25/how-to-find-objects-in-generics-with-list-find-method.aspx#comments</comments><description>&lt;p&gt;I&amp;#39;ve been looking for help on how to find objects in Generics with List.Find() method .... and ... take a look what I have found.&lt;br /&gt;In the follow example, I created a simple class:&lt;br /&gt;&lt;br /&gt;public class Person&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private int _id;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;private string _name;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public int ID {&amp;nbsp; get{ return _id;} set{ _id = value;}}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public int Name {&amp;nbsp; get{ return _name;} set{ _name= value;}}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public Person(int id, string name)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _id = id;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_name = name;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;In the example, there&amp;#39;s a simple class with two private attributes. Now we&amp;#39;re going to create a typed List of this object and take advantage of the Find() method&lt;br /&gt;&lt;br /&gt;public void CreateAndSearchList()&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //create and fill the collection&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; List&amp;lt;Person&amp;gt; myList = new List&amp;lt;Person&amp;gt;();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; myList.Add(new Person(1, &amp;quot;AndreySanches&amp;quot;));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; myList.Add(new Person(2, &amp;quot;AlexandreTarifa&amp;quot;));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; myList.Add(new Person(3, &amp;quot;EmersonFacunte&amp;quot;));&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //find a specific object&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Person myLocatedObject = myList.Find(delegate(Person p) {return p.ID == 1; });&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;This is the fastest way to&amp;nbsp;find objects using Generics.&lt;br /&gt;&lt;br /&gt;Enjoy it !!!!&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;}&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=878015" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/andreysanches/archive/tags/english+posts/default.aspx">english posts</category></item><item><title>Adding dynamically WebParts - Problems to move during first execution</title><link>http://msmvps.com/blogs/andreysanches/archive/2006/09/06/WebParts-doesn_2700_t-move-in-the-first-execution-with-dinamicly-adding.aspx</link><pubDate>Wed, 06 Sep 2006 22:54:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:115371</guid><dc:creator>andrey</dc:creator><slash:comments>0</slash:comments><comments>http://msmvps.com/blogs/andreysanches/archive/2006/09/06/WebParts-doesn_2700_t-move-in-the-first-execution-with-dinamicly-adding.aspx#comments</comments><description>&lt;p&gt;There&amp;#39;s&amp;nbsp;a &amp;quot;problem&amp;quot; when we try to add dynamically webparts to a page.&lt;br /&gt;&lt;br /&gt;In my last project, I&amp;nbsp;had&amp;nbsp;problems to add some dinamicly webparts&amp;nbsp;to able&amp;nbsp;users to move it around the page.&lt;br /&gt;&lt;br /&gt;When a webpart is dinamicly added to a page, in the first execution, if you try to move it,&amp;nbsp;probably you&amp;#39;ll have the WebPartZones empty. It happens because the aspnet_personalizationPerUser table doesn&amp;#39;t know that a new webPart has been added to the page. This process will happen after the first post to the page.&lt;br /&gt;&lt;br /&gt;To solve this situation, we have to do some changes to the code, and I&amp;#39;ll help you with this simple task.&lt;br /&gt;&lt;br /&gt;1. Extending the WebPartManager control (creating a new class)&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#0000ff;font-family:Courier New;"&gt;using System.Web.UI.WebControls.WebParts; &lt;br /&gt;public class MyWebPartManager : WebPartManager &lt;br /&gt;{ &lt;br /&gt;&lt;br /&gt;&amp;nbsp;public void setDirty() &lt;br /&gt;&amp;nbsp;{ &lt;br /&gt;&amp;nbsp; &amp;nbsp;SetPersonalizationDirty(); &lt;br /&gt;&amp;nbsp;} &lt;br /&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The setDirty() method calls the protected SetPersonalizationDirty() methods of WebPartManager class. This way the aspnet_PersonalizationPerUser will know that there&amp;#39;s a new WebPart on page.&lt;br /&gt;&lt;br /&gt;After you create the new WebPartManager called &lt;em&gt;MyWebPartManager&lt;/em&gt;, you have to replace the WebPartManager control in the page.&lt;br /&gt;&lt;br /&gt;2. Replacing the WebPartManager control&lt;br /&gt;&lt;br /&gt;a) Registering the control on page&lt;br /&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;@&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; &lt;/span&gt;&lt;span style="font-size:x-small;color:#800000;"&gt;Register&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; &lt;/span&gt;&lt;span style="font-size:x-small;color:#ff0000;"&gt;TagPrefix&lt;/span&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;=&amp;quot;myWPM&amp;quot;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; &lt;/span&gt;&lt;span style="font-size:x-small;color:#ff0000;"&gt;Assembly&lt;/span&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;=&amp;quot;yourassembly&amp;quot;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; &lt;/span&gt;&lt;span style="font-size:x-small;color:#ff0000;"&gt;Namespace&lt;/span&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;=&amp;quot;yournamespace&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;&lt;span style="font-family:Verdana;"&gt; %&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;&lt;br /&gt;b) Replacing the control on page&lt;br /&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size:x-small;color:#800000;"&gt;myWPM&lt;/span&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="font-size:x-small;color:#800000;"&gt;MyWebPartManager&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; &lt;/span&gt;&lt;span style="font-size:x-small;color:#ff0000;"&gt;id&lt;/span&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;=&amp;quot;WebPartManager1&amp;quot;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; &lt;/span&gt;&lt;span style="font-size:x-small;color:#ff0000;"&gt;runat&lt;/span&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;=&amp;quot;server&amp;quot;&amp;gt;&amp;lt;/&lt;span style="color:#800000;"&gt;myWPM&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="font-size:x-small;color:#800000;"&gt;MyWebPartManager&lt;/span&gt;&lt;span style="font-size:x-small;color:#0000ff;"&gt;&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;3. Calling the setDirty() method&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;"&gt;WebPart myWebPart = WebPartManager1.CreateWebPart(userControl); &lt;br /&gt;WebPartManager1.AddWebPart(myWebPart, WebPartZone1, 0); &lt;br /&gt;WebPartManager1.setDirty();&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;Is not necessary to execute the setDirty() for each webpart added to a page, you can execute it once.&lt;br /&gt;&lt;br /&gt;Thats it !! &lt;br /&gt;&lt;br /&gt;As soon as possible I&amp;#39;ll post some news about WebParts.&lt;br /&gt;&lt;br /&gt;Bye :)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=115371" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/andreysanches/archive/tags/english+posts/default.aspx">english posts</category></item></channel></rss>