<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://geeks.ms/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>Windows Phone &amp; Azure. Shaken, not stirred. : Windows Phone 7, SQL CE</title><link>http://geeks.ms/blogs/rserna/archive/tags/Windows+Phone+7/SQL+CE/default.aspx</link><description>Etiquetas: Windows Phone 7, SQL CE</description><dc:language /><generator>CommunityServer 2008.5 SP1 (Build: 31106.3070)</generator><item><title>Mejoras de Rendimiento en entornos SQL CE - I</title><link>http://geeks.ms/blogs/rserna/archive/2011/09/07/mejoras-de-rendimiento-en-entornos-sql-ce.aspx</link><pubDate>Wed, 07 Sep 2011 14:32:00 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:200391</guid><dc:creator>Rafa Serna</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/rserna/rsscomments.aspx?PostID=200391</wfw:commentRss><comments>http://geeks.ms/blogs/rserna/archive/2011/09/07/mejoras-de-rendimiento-en-entornos-sql-ce.aspx#comments</comments><description>&lt;p&gt;Una de las cosas que debemos de tener muy en cuenta a la hora de trabajar con dispositivos m&amp;oacute;viles, es el rendimiento. Ya sabemos que pronto saldr&amp;aacute;n, si es que no lo han echo ya m&amp;oacute;viles con doble procesador y dem&amp;aacute;s, pero no dejamos de necesitar controlar mas nuestro entorno en un dispositivo m&amp;oacute;vil que en un equipo de sobremesa.&lt;/p&gt;
&lt;p&gt;&amp;Uacute;ltimamente a nadie se le escapa que cualquier desarrollador en entornos de escritorio, sencillos, ha (hemos) dejado un poco de lado esta parte de rendimiento, ordenadores con 8 Gb de Ram, 4 n&amp;uacute;cleos, etc, etc, hacen que el rendimiento este en tu lista de requisitos bastante alejado de las primeras posiciones.&lt;/p&gt;
&lt;p&gt;Como he comentado, nos encontramos con otro tipo de entornos y si queremos hacer buenas aplicaciones empresariales para Windows Phone 7 ya no puede estar el rendimiento al fondo de la lista de requisitos, sino mas bien al contrario, si no es la primera ser&amp;aacute; la segunda.&lt;/p&gt;
&lt;p&gt;El uso de SQL CE como base de datos relacional en una de nuestras aplicaciones hace que tengamos a parte un elemento mas de saturaci&amp;oacute;n de rendimiento, nuestra aplicaci&amp;oacute;n y los propios procesos internos que debe de hacer SQL CE. Pero es bastante sencillo seguir una serie de consejos que aplic&amp;aacute;ndolos nos ahorran bastante tiempo de proceso.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="text-decoration:underline;"&gt;&lt;span style="font-size:x-small;"&gt;Inserci&amp;oacute;n de Datos.&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Nuestro amigo el Insert. Esto que voy a comentar es mas de sentido com&amp;uacute;n que de forma de hacerlo especial para ganar rendimiento. &lt;/p&gt;
&lt;p&gt;Pongamos por ejemplo el mapeo de esta sencilla tabla.&lt;/p&gt;
&lt;div id="codeSnippetWrapper" style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;width:97.5%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;height:229px;max-height:200px;font-size:8pt;overflow:auto;cursor:text;border:silver 1px solid;padding:4px;"&gt;
&lt;div id="codeSnippet" style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;
&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;[Table]&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; Tabla1&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;{&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;    [Column(IsPrimaryKey=&lt;span style="color:#0000ff;"&gt;true&lt;/span&gt;, IsDbGenerated=&lt;span style="color:#0000ff;"&gt;true&lt;/span&gt;)]&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;    &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;int&lt;/span&gt; ID { get; set; }&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&amp;nbsp;&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;    [Column]&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;    &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; Nombre { get; set; }&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&amp;nbsp;&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;    [Column]&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;    &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; Apellidos { get; set; }&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&amp;nbsp;&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;    [Column]&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;    &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; Email { get; set; }&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;}&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Como digo, una sencilla tabla con 4 campos y clave primaria entera auto incremental.&lt;/p&gt;
&lt;p&gt;Si realizamos la inserci&amp;oacute;n por ejemplo de 1000 filas, podemos hacerlo b&amp;aacute;sicamente de 3 formas:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="font-size:x-small;"&gt;1&amp;ordm;&lt;/span&gt;&lt;/strong&gt; Utilizando &lt;em&gt;InsertOnSubmit&lt;/em&gt; y seguidamente realizar un &lt;em&gt;SubmitChanges&lt;/em&gt;&lt;/p&gt;
&lt;div id="codeSnippetWrapper" style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;width:97.5%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;cursor:text;border:silver 1px solid;padding:4px;"&gt;
&lt;div id="codeSnippet" style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;
&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;Tabla1 Dato;&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span style="color:#0000ff;"&gt;using&lt;/span&gt; (ContextoDatos Contexto = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; ContextoDatos(CadenadeConexion))&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;{&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;    &lt;span style="color:#0000ff;"&gt;for&lt;/span&gt; (&lt;span style="color:#0000ff;"&gt;int&lt;/span&gt; i = 0; i &amp;lt; &lt;span style="color:#0000ff;"&gt;int&lt;/span&gt;.Parse(NRegistros.Text); i++)&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;    {&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;        Dato = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; Tabla1();&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;        Dato.Nombre = &lt;span style="color:#006080;"&gt;&amp;quot;Nombre &amp;quot;&lt;/span&gt; + i.ToString();&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;        Dato.Apellidos = &lt;span style="color:#006080;"&gt;&amp;quot;Apellidos &amp;quot;&lt;/span&gt; + i.ToString();&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;        Dato.Email = &lt;span style="color:#006080;"&gt;&amp;quot;Email&amp;quot;&lt;/span&gt; + i.ToString() + &lt;span style="color:#006080;"&gt;&amp;quot;@live&amp;quot;&lt;/span&gt; + i.ToString() + &lt;span style="color:#006080;"&gt;&amp;quot;.com&amp;quot;&lt;/span&gt;;&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&amp;nbsp;&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;        Contexto.Personas1.InsertOnSubmit(Dato);&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;        Contexto.SubmitChanges();&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;    }&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;}&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="font-size:x-small;"&gt;2&amp;ordm;&lt;/span&gt;&lt;/strong&gt; Utilizando tambi&amp;eacute;n el &lt;em&gt;InsertOnSubmit&lt;/em&gt; pero dejar el &lt;em&gt;SubmitChanges&lt;/em&gt; para el final&lt;/p&gt;
&lt;div id="codeSnippetWrapper" style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;width:97.5%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;cursor:text;border:silver 1px solid;padding:4px;"&gt;
&lt;div id="codeSnippet" style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;
&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;Tabla1 Dato;&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span style="color:#0000ff;"&gt;using&lt;/span&gt; (ContextoDatos Contexto = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; ContextoDatos(CadenadeConexion))&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;{&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;    &lt;span style="color:#0000ff;"&gt;for&lt;/span&gt; (&lt;span style="color:#0000ff;"&gt;int&lt;/span&gt; i = 0; i &amp;lt; &lt;span style="color:#0000ff;"&gt;int&lt;/span&gt;.Parse(NRegistros.Text); i++)&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;    {&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;        Dato = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; Tabla1();&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;        Dato.Nombre = &lt;span style="color:#006080;"&gt;&amp;quot;Nombre &amp;quot;&lt;/span&gt; + i.ToString();&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;        Dato.Apellidos = &lt;span style="color:#006080;"&gt;&amp;quot;Apellidos &amp;quot;&lt;/span&gt; + i.ToString();&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;        Dato.Email = &lt;span style="color:#006080;"&gt;&amp;quot;Email&amp;quot;&lt;/span&gt; + i.ToString() + &lt;span style="color:#006080;"&gt;&amp;quot;@live&amp;quot;&lt;/span&gt; + i.ToString() + &lt;span style="color:#006080;"&gt;&amp;quot;.com&amp;quot;&lt;/span&gt;;&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&amp;nbsp;&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;        Contexto.Personas1.InsertOnSubmit(Dato);&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;    }&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&amp;nbsp;&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;    Contexto.SubmitChanges();&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;}&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;span style="font-size:x-small;"&gt;&lt;strong&gt;3&amp;ordm;&lt;/strong&gt;&lt;/span&gt; Usar un elemento que sea &lt;em&gt;IEnumerable&lt;/em&gt;, utilizar &lt;em&gt;InsertAllOnSubmit&lt;/em&gt; y realizar un &lt;em&gt;SubmitChanges&lt;/em&gt;.&lt;/p&gt;
&lt;div id="codeSnippetWrapper" style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;width:97.5%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;cursor:text;border:silver 1px solid;padding:4px;"&gt;
&lt;div id="codeSnippet" style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;
&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;List&amp;lt;Tabla1&amp;gt; Datos = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; List&amp;lt;Tabla1&amp;gt;();&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&amp;nbsp;&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;Tabla1 Dato;&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span style="color:#0000ff;"&gt;using&lt;/span&gt; (ContextoDatos Contexto = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; ContextoDatos(CadenadeConexion))&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;{&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;    &lt;span style="color:#0000ff;"&gt;for&lt;/span&gt; (&lt;span style="color:#0000ff;"&gt;int&lt;/span&gt; i = 0; i &amp;lt; &lt;span style="color:#0000ff;"&gt;int&lt;/span&gt;.Parse(NRegistros.Text); i++)&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;    {&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;        Dato = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; Tabla1();&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;        Dato.Nombre = &lt;span style="color:#006080;"&gt;&amp;quot;Nombre &amp;quot;&lt;/span&gt; + i.ToString();&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;        Dato.Apellidos = &lt;span style="color:#006080;"&gt;&amp;quot;Apellidos &amp;quot;&lt;/span&gt; + i.ToString();&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;        Dato.Email = &lt;span style="color:#006080;"&gt;&amp;quot;Email&amp;quot;&lt;/span&gt; + i.ToString() + &lt;span style="color:#006080;"&gt;&amp;quot;@live&amp;quot;&lt;/span&gt; + i.ToString() + &lt;span style="color:#006080;"&gt;&amp;quot;.com&amp;quot;&lt;/span&gt;;&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&amp;nbsp;&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;        Datos.Add(Dato);&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;    }&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&amp;nbsp;&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;    Contexto.Personas1.InsertAllOnSubmit(Datos);&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;    Contexto.SubmitChanges();&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;}&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Como alguna que otra vez he o&amp;iacute;do decir a alguien, las cosas se pueden hacer mal, o muy mal y en este caso usar el &lt;em&gt;SubmitChanges&lt;/em&gt; tras realizar un &lt;em&gt;InsertOnSubmit&lt;/em&gt;, es sin lugar a dudas una opci&amp;oacute;n mal&amp;iacute;sima. Obviamente todo depende de que aplicaci&amp;oacute;n estemos desarrollando pero, tenemos que tener en cuenta que reflejar f&amp;iacute;sicamente los datos en la base de datos y no mantenerlo en memoria hasta hacer un Submit final, salvo en casos en donde las transacciones de la informaci&amp;oacute;n sea primordial es totalmente innecesario. Tenemos que tener en cuenta que el m&amp;oacute;vil solo lo usamos nosotros. :-)&lt;/p&gt;
&lt;p&gt;Insertando como decimos 1000 registros en 5 ocasiones diferentes el tiempo en realizar cada operaci&amp;oacute;n a sido el siguiente:&lt;/p&gt;
&lt;div align="center"&gt;
&lt;table align="center" width="400" cellpadding="2" cellspacing="0" border="0"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width="100" valign="top"&gt;&amp;nbsp;&lt;/td&gt;
&lt;td width="100" valign="top"&gt;Opci&amp;oacute;n 1&lt;/td&gt;
&lt;td width="100" valign="top"&gt;Opci&amp;oacute;n 2&lt;/td&gt;
&lt;td width="100" valign="top"&gt;Opci&amp;oacute;n 3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="100" valign="top"&gt;1&amp;ordf; Inserci&amp;oacute;n&lt;/td&gt;
&lt;td width="100" valign="top"&gt;28.294 ms&lt;/td&gt;
&lt;td width="100" valign="top"&gt;422 ms&lt;/td&gt;
&lt;td width="100" valign="top"&gt;529 ms&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="100" valign="top"&gt;2&amp;ordf; Inserci&amp;oacute;n&lt;/td&gt;
&lt;td width="100" valign="top"&gt;33.778 ms&lt;/td&gt;
&lt;td width="100" valign="top"&gt;399 ms&lt;/td&gt;
&lt;td width="100" valign="top"&gt;394 ms&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="100" valign="top"&gt;3&amp;ordf; Inserci&amp;oacute;n&lt;/td&gt;
&lt;td width="100" valign="top"&gt;27.331 ms&lt;/td&gt;
&lt;td width="100" valign="top"&gt;392 ms&lt;/td&gt;
&lt;td width="100" valign="top"&gt;381 ms&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="100" valign="top"&gt;4&amp;ordf; Inserci&amp;oacute;n&lt;/td&gt;
&lt;td width="100" valign="top"&gt;25.930 ms&lt;/td&gt;
&lt;td width="100" valign="top"&gt;504 ms &lt;/td&gt;
&lt;td width="100" valign="top"&gt;568 ms&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="100" valign="top"&gt;5&amp;ordf; Inserci&amp;oacute;n&lt;/td&gt;
&lt;td width="100" valign="top"&gt;26.876 ms&lt;/td&gt;
&lt;td width="100" valign="top"&gt;380 ms&lt;/td&gt;
&lt;td width="100" valign="top"&gt;390 ms&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p&gt;Es decir usar los m&amp;eacute;todos 2 y 3 apenas varia el rendimiento, pero estos son un 97% mas r&amp;aacute;pidos que la opci&amp;oacute;n 1. Ah&amp;iacute; queda eso.&lt;/p&gt;
&lt;p&gt;En el siguiente post, ya veremos que realizando dos o tres toques sutiles en la definici&amp;oacute;n de nuestras bases de datos, tambi&amp;eacute;n podremos ganar mucho tiempo.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=200391" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/rserna/archive/tags/SQL+CE/default.aspx">SQL CE</category><category domain="http://geeks.ms/blogs/rserna/archive/tags/Windows+Phone+7/default.aspx">Windows Phone 7</category></item><item><title>Creación visual de tablas para el uso con SQL CE y “Mango”.</title><link>http://geeks.ms/blogs/rserna/archive/2011/08/29/creaci-243-n-visual-de-tablas-para-el-uso-con-sql-ce-y-mango.aspx</link><pubDate>Mon, 29 Aug 2011 08:51:00 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:199933</guid><dc:creator>Rafa Serna</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/rserna/rsscomments.aspx?PostID=199933</wfw:commentRss><comments>http://geeks.ms/blogs/rserna/archive/2011/08/29/creaci-243-n-visual-de-tablas-para-el-uso-con-sql-ce-y-mango.aspx#comments</comments><description>&lt;p&gt;Este post lo escrib&amp;iacute; originalmente en mi blog personal el d&amp;iacute;a 03/08/2011.&lt;/p&gt;
&lt;p&gt;&amp;iquest;Pero como que creaci&amp;oacute;n visual de tablas?, si se nos ha dicho que no, que debemos de picarnos todo el mapeo de nuestras bases de datos para trabajar con el DataContext a mano. Quiz&amp;aacute;s alguna que otra herramienta podr&amp;iacute;a ayudarnos pero poca cosa mas, siempre dependiendo de una base de datos ya existente. &amp;iquest;No es as&amp;iacute;?&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration:underline;"&gt;&lt;strong&gt;Pues no, os enga&amp;ntilde;aron,&lt;/strong&gt;&lt;/span&gt; bueno vale: nos enga&amp;ntilde;aron. &lt;/p&gt;
&lt;p&gt;Vamos a darles a los chicos de desarrollo de Windows Phone, el margen de la duda y pongamos que simplemente no nos lo han contado as&amp;iacute; para no liarnos y para no pensar que las cosas est&amp;aacute;n un poquito a medias. Si en el fondo son chicos majos. &lt;/p&gt;
&lt;p&gt;Pues &lt;strong&gt;&lt;span style="text-decoration:underline;"&gt;SI&lt;/span&gt;&lt;/strong&gt;, si que se puede y adem&amp;aacute;s de la manera mas tonta, quiz&amp;aacute;s es que nadie lo ha probado, pero bueno yo creo que es un peque&amp;ntilde;o truco o apa&amp;ntilde;o, pero mejor que picarnos a mano todo nuestro mapeo, para mi es mas que suficiente. &lt;a href="http://tecnologia.rafaserna.es/files/2011/08/MapeoDbml1.jpg"&gt;&lt;img height="244" width="165" src="http://tecnologia.rafaserna.es/files/2011/08/MapeoDbml1_thumb.jpg" alt="MapeoDbml1" border="0" title="MapeoDbml1" style="background-image:none;border-right-width:0px;margin:0px auto 10px;padding-left:0px;padding-right:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Para ello simplemente creare una aplicaci&amp;oacute;n m&amp;iacute;nima, y mostrare como se tiene que hacer: Creamos nuestra soluci&amp;oacute;n en la cual estar&amp;aacute; incluido obviamente nuestro proyecto de &amp;ldquo;&lt;em&gt;Windows Phone Application&lt;/em&gt;&amp;rdquo;, a parte de esto crearemos simplemente para apoyarnos en la herramienta, dentro de nuestra soluci&amp;oacute;n (no es esto obligatorio) una biblioteca de clases. &lt;/p&gt;
&lt;p&gt;Una vez que tenemos este esquema montado, procedemos a crear un nuevo elemento del tipo &amp;ldquo;&lt;em&gt;Clases de LINQ to SQL&lt;/em&gt;&amp;rdquo;, fichero del tipo &amp;ldquo;.&lt;em&gt;dbml&lt;/em&gt;&amp;rdquo; en nuestro proyecto de biblioteca de clases. Una vez creado este elemento procedemos a crear las clases de forma visual en nuestro &amp;ldquo;&lt;em&gt;Object Relational Designer&lt;/em&gt;&amp;rdquo;. &lt;/p&gt;
&lt;p&gt;En este ejemplo crearemos dos clases (Tablas) con una serie de propiedades (Columnas o campos) cada una de ellas. As&amp;iacute; mismo tambi&amp;eacute;n crearemos una asociaci&amp;oacute;n entre ambas y una clave secundaria en una de ellas para comprobar que mas o menos toda la funcionalidad que nos permite LINQ to SQL en nuestro Windows Phone, la podemos mapear de forma visual desde aqu&amp;iacute;. El esquema o mapeo de datos quedar&amp;iacute;a de la siguiente manera:
&lt;p&gt;&lt;img height="350" width="405" src="http://tecnologia.rafaserna.es/files/2011/08/MapeoDbml2_thumb.jpg" alt="MapeoDbml2" border="0" title="MapeoDbml2" style="background-image:none;border-right-width:0px;margin:0px auto 10px;padding-left:0px;padding-right:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" /&gt;&lt;/p&gt;
Una vez realizado el mapeo de forma visual, debemos de fijarnos que junto a nuestro fichero original &amp;ldquo;.&lt;em&gt;dbml&lt;/em&gt;&amp;rdquo;, existen 2 ficheros mas, el que define el layout del dise&amp;ntilde;ador y el que nos interesa, el fichero con extensi&amp;oacute;n &amp;ldquo;.&lt;em&gt;designer.cs&lt;/em&gt;&amp;rdquo;. Este es el fichero que contiene todo el mapeo de datos que hemos creado anteriormente de forma visual y es el fichero que vamos a agregar a nuestro proyecto de &amp;ldquo;Windows Phone&amp;rdquo;. &lt;/p&gt;
&lt;p&gt;Una vez a&amp;ntilde;adido a nuestro proyecto &amp;ldquo;principal&amp;rdquo;, simplemente quitaremos un par de constructores que crea por defecto Visual Studio en el DataContext, que por otra parte son los dos mismos constructores que deberemos de quitar si utilizamos la herramienta SQLMetal para crear nuestro mapeo de datos. Estos constructores son los que nos solicita como par&amp;aacute;metros de entrada los objetos del tipo &amp;ldquo;&lt;em&gt;System.Data.IDbConnection&lt;/em&gt;&amp;rdquo;. &lt;a href="http://tecnologia.rafaserna.es/files/2011/08/MapeoDbml3.jpg"&gt;&lt;img height="194" width="478" src="http://tecnologia.rafaserna.es/files/2011/08/MapeoDbml3_thumb.jpg" alt="MapeoDbml3" border="0" title="MapeoDbml3" style="background-image:none;border-right-width:0px;margin:0px auto 10px;padding-left:0px;padding-right:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" /&gt;&lt;/a&gt; No deberemos de olvidarnos de agregar la referencia al ensamblado &amp;ldquo;System.Data.LINQ&amp;rdquo;, si queremos que todo esto nos funcione. &lt;/p&gt;
&lt;p&gt;Punto y final, ya tenemos nuestro mapeo de datos terminado. Ahora a crear la base de datos y trabajar con ella. La &amp;uacute;nica pega, pues que cada vez que queramos modificar nuestra base de datos deberemos de volver a importar nuestro fichero &amp;ldquo;.&lt;em&gt;designer.cs&lt;/em&gt;&amp;rdquo; y volver a quitar los dos constructores comentados. Que es eso comparado con el trabajo que llevar&amp;iacute;a mapear a mano una base de datos nueva que sea un poco compleja. &lt;/p&gt;
&lt;p&gt;Y para muestra un bot&amp;oacute;n, aqu&amp;iacute; os dejo una captura de la estructura de base de datos que nos crea nuestro nuevo DataContext y un ejemplo completo de como hacerlo. &lt;a href="http://tecnologia.rafaserna.es/files/2011/08/MapeoDbml4.jpg"&gt;&lt;img height="345" width="278" src="http://tecnologia.rafaserna.es/files/2011/08/MapeoDbml4_thumb.jpg" alt="MapeoDbml4" border="0" title="MapeoDbml4" style="background-image:none;border-right-width:0px;margin:0px auto 10px;padding-left:0px;padding-right:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" /&gt;&lt;/a&gt; Ejemplo de como poder hacerlo:&lt;/p&gt;
&lt;p&gt;&lt;iframe scrolling="no" marginwidth="0" frameborder="0" src="https://skydrive.live.com/embedicon.aspx/.Public/Blog/DemoSqlCeDbml.zip?cid=c5a73fd5793017e9&amp;amp;sc=documents" marginheight="0" style="background-color:#ffffff;margin:3px;width:111px;height:116px;border:#dde5e9 1px solid;padding:0px;"&gt;&lt;/iframe&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=199933" width="1" height="1"&gt;</description><enclosure url="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Components.PostAttachments/00.00.19.99.33/DemoSqlCeDbml.zip" length="117225" type="application/x-zip-compressed" /><category domain="http://geeks.ms/blogs/rserna/archive/tags/SQL+CE/default.aspx">SQL CE</category><category domain="http://geeks.ms/blogs/rserna/archive/tags/Windows+Phone+7/default.aspx">Windows Phone 7</category></item><item><title>SQL CE - Un “DataContext” para gobernarlos a todos.</title><link>http://geeks.ms/blogs/rserna/archive/2011/08/22/sql-ce-un-datacontext-para-gobernarlos-a-todos.aspx</link><pubDate>Mon, 22 Aug 2011 06:53:00 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:199813</guid><dc:creator>Rafa Serna</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/rserna/rsscomments.aspx?PostID=199813</wfw:commentRss><comments>http://geeks.ms/blogs/rserna/archive/2011/08/22/sql-ce-un-datacontext-para-gobernarlos-a-todos.aspx#comments</comments><description>&lt;p&gt;Este Post, originalmente lo escrib&amp;iacute; para mi blog personal, el d&amp;iacute;a 15/07/2011&lt;/p&gt;
&lt;p&gt;Lo primero que debemos de conocer es como se va a organizar la estructura de los datos en nuestras BBDD, gestionadas por &amp;ldquo;Mango&amp;rdquo;, para ello lo primero que debemos de conocer es el funcionamiento en profundidad de LINQ to SQL. &amp;iquest;Porque LINQ to SQL?, por que ser&amp;aacute; la &amp;uacute;nica forma de interactuar con SQL CE, ya que no existir&amp;aacute;n las conexiones directas contra las bases de datos. &lt;/p&gt;
&lt;p&gt;Seg&amp;uacute;n &lt;a target="_blank" href="http://msdn.microsoft.com/en-us/library/hh202860(v=vs.92).aspx"&gt;MSDN&lt;/a&gt; en sus librer&amp;iacute;as para Windows Phone &lt;em&gt;&amp;ldquo;LINQ to SQL proporciona un enfoque orientado a objetos para trabajar con datos y contar con un modelo de objetos en tiempo de ejecuci&amp;oacute;n.&amp;rdquo;&lt;/em&gt; o &lt;a target="_blank" href="http://msdn.microsoft.com/es-es/library/bb386976.aspx"&gt;dicho de otra manera&lt;/a&gt; &lt;em&gt;&amp;ldquo;el modelo de datos de una base de datos relacional se asigna a un modelo de objetos expresado en el lenguaje del programador&amp;rdquo;.&lt;/em&gt; &lt;/p&gt;
&lt;p&gt;Para realizar toda esta magia de poder manejar los datos como objetos, se utiliza un objeto principal denominado &lt;strong&gt;&lt;span style="text-decoration:underline;"&gt;DataContext&lt;/span&gt;&lt;/strong&gt;, que, otra vez seg&amp;uacute;n MSDN &lt;em&gt;&amp;ldquo;act&amp;uacute;a como un proxy para la base de datos local&amp;rdquo;.&lt;/em&gt; Este objeto esta recogido en el espacio de nombres System.Data.Linq.DataContext.&lt;/p&gt;
&lt;p&gt;Para aproximarnos a su funcionamiento en los entornos de Windows Phone &amp;ldquo;Mango&amp;rdquo;, podremos seguir la siente imagen: &lt;a href="http://tecnologia.rafaserna.es/files/2011/07/ImagenDataContext.png"&gt;&lt;img height="245" width="402" src="http://tecnologia.rafaserna.es/files/2011/07/ImagenDataContext_thumb.png" alt="ImagenDataContext" border="0" title="ImagenDataContext" style="background-image:none;border-right-width:0px;margin:0px auto 10px;padding-left:0px;padding-right:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;Una vez que conocemos que todo gira en torno al DataContext, deber&amp;iacute;amos de tener en cuenta las diferencias entre el DataContext utilizado en nuestros entornos m&amp;oacute;viles y el DataContext utilizado en entornos de escritorio. &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Lo primero que debemos saber es que no est&amp;aacute;n soportados todos los tipos y clases soportados en el namespace System.Data.Linq y que los que est&amp;aacute;n soportados lo est&amp;aacute;n de forma parcial. &lt;/li&gt;
&lt;li&gt;Como ya comente en la entrada preliminar, no esta soportado la utilizaci&amp;oacute;n del lenguaje Transact-SQL. &lt;/li&gt;
&lt;li&gt;Los objetos de datos de ADO.NET, tampoco est&amp;aacute;n soportados, como por ejemplo el objeto DataReader. Todo, absolutamente todo se utiliza como una colecci&amp;oacute;n de objetos del tipo especificado por el DataContext. &lt;/li&gt;
&lt;li&gt;Los formatos binary de datos tampoco est&amp;aacute;n soportados. Mejor dicho si lo est&amp;aacute;n pero no de forma directa, se deber&amp;aacute;n de crear tipos propios y parsearlos contra los tipos binarios de nuestra base de datos. &lt;/li&gt;
&lt;li&gt;En este caso LINQ to SQL solo funciona con SQL CE. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Para conocer mas en profundidad que o que no esta soportado en LINQ to SQL para Windows Phone, deb&amp;eacute;is visitar como no &lt;a target="_blank" href="http://msdn.microsoft.com/en-us/library/hh202872(v=vs.92).aspx"&gt;MSDN&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration:underline;"&gt;&lt;strong&gt;Creaci&amp;oacute;n del DataContext.&lt;/strong&gt;&lt;/span&gt; &lt;/p&gt;
&lt;p&gt;Como he comentado lo primero es la creaci&amp;oacute;n del DataContext, para ello lo primero que debemos de hacer es a&amp;ntilde;adir la referencia del ensamblado System.Data.Linq. &lt;a href="http://tecnologia.rafaserna.es/files/2011/07/AddReferenceLinq.png"&gt;&lt;img height="195" width="403" src="http://tecnologia.rafaserna.es/files/2011/07/AddReferenceLinq_thumb.png" alt="AddReferenceLinq" border="0" title="AddReferenceLinq" style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" /&gt;&lt;/a&gt; Ahora creamos la clase del tipo DataContext. &lt;/p&gt;
&lt;div id="codeSnippetWrapper" style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;width:97.5%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;cursor:text;border:silver 1px solid;padding:4px;"&gt;
&lt;div id="codeSnippet" style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;
&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum1" style="color:#606060;"&gt;   1:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; ContextodeDatos : DataContext&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum2" style="color:#606060;"&gt;   2:&lt;/span&gt; {&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum3" style="color:#606060;"&gt;   3:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; ContextodeDatos(&lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; CadenaConexion) : &lt;span style="color:#0000ff;"&gt;base&lt;/span&gt;(CadenaConexion)&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum4" style="color:#606060;"&gt;   4:&lt;/span&gt;     {&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum5" style="color:#606060;"&gt;   5:&lt;/span&gt;     }&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum6" style="color:#606060;"&gt;   6:&lt;/span&gt; }&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;El DataContext es como venimos diciendo todo el tiempo, el que se encarga de manejar los datos en si, para ello debemos de tener la referencia a los objetos (datos), que vamos a utilizar. Con lo que previamente al paso de crear el contexto de datos, deber&amp;iacute;amos de haber creado la clase que mapea los datos, es decir el objeto puente entre los datos reales contenidos en la BBDD y LINQ to SQL. Estos objetos se denominan com&amp;uacute;nmente objetos &lt;a target="_blank" href="http://es.wikipedia.org/wiki/Plain_Old_CLR_Object"&gt;POCO&lt;/a&gt; (Plain Old CLR Object) &lt;/p&gt;
&lt;p&gt;En este ejemplo vamos a tener una base de datos con 2 tablas, Autores y Libros, y obviamente estas dos tablas tendr&amp;aacute;n sus correspondientes campos. El esquema de ambas es el que se detalla a continuaci&amp;oacute;n. &lt;a href="http://tecnologia.rafaserna.es/files/2011/07/Tablas1.png"&gt;&lt;img height="111" width="244" src="http://tecnologia.rafaserna.es/files/2011/07/Tablas1_thumb.png" align="right" alt="Tablas1" border="0" title="Tablas1" style="background-image:none;border-right-width:0px;margin:0px 15px 10px 0px;padding-left:0px;padding-right:0px;display:inline;float:right;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Como hemos comentado deberemos de crear una serie de clases que mapeen a cada una de las tablas &amp;ldquo;f&amp;iacute;sicas&amp;rdquo; de la BBDD, comenzaremos por crear la primera de ellas sobre la tabla &amp;ldquo;Autores&amp;rdquo;. Para guiarnos de una forma sencilla las denominaremos como las tablas a las que mapean. &lt;/p&gt;
&lt;p&gt;No debemos de olvidarnos de a&amp;ntilde;adir en el uses de nuestro fichero la referencia al namespace System.Data.Linq.Mapping. &lt;/p&gt;
&lt;div id="codeSnippetWrapper" style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;width:97.5%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;cursor:text;border:silver 1px solid;padding:4px;"&gt;
&lt;div id="codeSnippet" style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;
&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum1" style="color:#606060;"&gt;   1:&lt;/span&gt; [Table(Name=&lt;span style="color:#006080;"&gt;&amp;quot;Autores&amp;quot;&lt;/span&gt;)]&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum2" style="color:#606060;"&gt;   2:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; Autor&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum3" style="color:#606060;"&gt;   3:&lt;/span&gt; {&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum4" style="color:#606060;"&gt;   4:&lt;/span&gt;     [Column(IsPrimaryKey=&lt;span style="color:#0000ff;"&gt;true&lt;/span&gt;, IsDbGenerated=&lt;span style="color:#0000ff;"&gt;true&lt;/span&gt;)]&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum5" style="color:#606060;"&gt;   5:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;int&lt;/span&gt; ID { get; set; }&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum6" style="color:#606060;"&gt;   6:&lt;/span&gt;  &lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum7" style="color:#606060;"&gt;   7:&lt;/span&gt;     [Column]&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum8" style="color:#606060;"&gt;   8:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; Nombre { get; set; }&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum9" style="color:#606060;"&gt;   9:&lt;/span&gt;  &lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum10" style="color:#606060;"&gt;  10:&lt;/span&gt;     [Column]&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum11" style="color:#606060;"&gt;  11:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; Apellidos { get; set; }&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum12" style="color:#606060;"&gt;  12:&lt;/span&gt;  &lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum13" style="color:#606060;"&gt;  13:&lt;/span&gt;     [Column]&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum14" style="color:#606060;"&gt;  14:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; Pais { get; set; }&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum15" style="color:#606060;"&gt;  15:&lt;/span&gt; }&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Tras crear la clase Autores, crearemos la clase Libros. &lt;/p&gt;
&lt;div id="codeSnippetWrapper" style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;width:97.5%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;cursor:text;border:silver 1px solid;padding:4px;"&gt;
&lt;div id="codeSnippet" style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;
&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum1" style="color:#606060;"&gt;   1:&lt;/span&gt; [Table(Name=&lt;span style="color:#006080;"&gt;&amp;quot;Libros&amp;quot;&lt;/span&gt;)]&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum2" style="color:#606060;"&gt;   2:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; Libro&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum3" style="color:#606060;"&gt;   3:&lt;/span&gt; {&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum4" style="color:#606060;"&gt;   4:&lt;/span&gt;     [Column(IsPrimaryKey=&lt;span style="color:#0000ff;"&gt;true&lt;/span&gt;)]&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum5" style="color:#606060;"&gt;   5:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; ISBN { get; set; }&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum6" style="color:#606060;"&gt;   6:&lt;/span&gt;  &lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum7" style="color:#606060;"&gt;   7:&lt;/span&gt;     [Column]&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum8" style="color:#606060;"&gt;   8:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; Titulo { get; set; }&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum9" style="color:#606060;"&gt;   9:&lt;/span&gt;  &lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum10" style="color:#606060;"&gt;  10:&lt;/span&gt;     [Column]&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum11" style="color:#606060;"&gt;  11:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;decimal&lt;/span&gt; Precio { get; set; }&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum12" style="color:#606060;"&gt;  12:&lt;/span&gt;  &lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum13" style="color:#606060;"&gt;  13:&lt;/span&gt;     [Column]&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum14" style="color:#606060;"&gt;  14:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; Editorial { get; set; }&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum15" style="color:#606060;"&gt;  15:&lt;/span&gt;  &lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum16" style="color:#606060;"&gt;  16:&lt;/span&gt;     [Column]&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum17" style="color:#606060;"&gt;  17:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; Autor { get; set; }&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum18" style="color:#606060;"&gt;  18:&lt;/span&gt;  &lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum19" style="color:#606060;"&gt;  19:&lt;/span&gt;     [Column]&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum20" style="color:#606060;"&gt;  20:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; Idioma { get; set; }&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum21" style="color:#606060;"&gt;  21:&lt;/span&gt; }&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;

&lt;/p&gt;
&lt;p&gt;Lo primero de lo que nos damos cuenta es de los atributos utilizados en la creaci&amp;oacute;n de ambas clases. Podemos ver &lt;a target="_blank" href="http://msdn.microsoft.com/en-us/library/bb386971.aspx"&gt;aqu&amp;iacute;&lt;/a&gt; la lista completa de los atributos que se pueden utilizar a la hora de mapear los datos en LINQ to SQL. Tenemos que tener en cuenta que no todos los atributos son soportados. En nuestro caso solo hemos utilizados dos de forma muy sencilla:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;[Table]&lt;/strong&gt;: Atributo para indicar que la clase mapea una tabla de datos. Adem&amp;aacute;s hemos utilizado una propiedad de este atributo (la &amp;uacute;nica posible as&amp;iacute; mismo), denominada &amp;ldquo;Name&amp;rdquo;, por la que indicamos el nombre de la tabla dentro de la BBDD.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;[Column]&lt;/strong&gt;: Atributo para indicar que el miembro de la clase se mapea a una columna de la tabla, a un campo de la tabla. En este caso hemos utilizado dos propiedades de este atributo: &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;IsPrimaryKey&lt;/em&gt;: Por la que indicamos que columna o columnas forman parte de la clave primaria de la tabla. &lt;/li&gt;
&lt;li&gt;&lt;em&gt;IsDbGenerated&lt;/em&gt;: Con esta otra propiedad indicamos que columna es auto-generada por la base de datos. En este caso que la columna es auto incremental. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Como podemos observar el mapeo de las bases de datos es algo bastante latoso, en este caso tenemos simplemente dos tablas muy sencillas dentro de una base de datos bastante normalita, este tema en un entorno real puede convertirse en algo bastante lioso. No existen aun herramientas de modelado o de mapeo autom&amp;aacute;tico para este tipo de clases, de forma nativa con Visual Studio pero si que existen herramientas de terceros que pueden ayudarnos a realizar estas tareas de una manera mas visual y mas c&amp;oacute;moda. En posteriores post hablare de ellas. &lt;/p&gt;
&lt;p&gt;Bueno pues seguimos con nuestro contexto. Anteriormente creamos la clase del tipo DataContext, ahora lo &amp;uacute;nico que debemos de hacer es referenciar nuestros mapeos de las tablas creadas dentro de ese contexto de datos. &lt;/p&gt;
&lt;div id="codeSnippetWrapper" style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;width:97.5%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;cursor:text;border:silver 1px solid;padding:4px;"&gt;
&lt;div id="codeSnippet" style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;
&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum1" style="color:#606060;"&gt;   1:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; ContextoDeDatos : DataContext&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum2" style="color:#606060;"&gt;   2:&lt;/span&gt; {&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum3" style="color:#606060;"&gt;   3:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; ContextoDeDatos(&lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; CadenaConexion) : &lt;span style="color:#0000ff;"&gt;base&lt;/span&gt;(CadenaConexion)&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum4" style="color:#606060;"&gt;   4:&lt;/span&gt;     {&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum5" style="color:#606060;"&gt;   5:&lt;/span&gt;     }&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum6" style="color:#606060;"&gt;   6:&lt;/span&gt;  &lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum7" style="color:#606060;"&gt;   7:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; Table Autores&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum8" style="color:#606060;"&gt;   8:&lt;/span&gt;     {&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum9" style="color:#606060;"&gt;   9:&lt;/span&gt;         get { &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;.GetTable(); }&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum10" style="color:#606060;"&gt;  10:&lt;/span&gt;     }&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum11" style="color:#606060;"&gt;  11:&lt;/span&gt;  &lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum12" style="color:#606060;"&gt;  12:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; Table Libros&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum13" style="color:#606060;"&gt;  13:&lt;/span&gt;     {&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum14" style="color:#606060;"&gt;  14:&lt;/span&gt;         get { &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;.GetTable(); }&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum15" style="color:#606060;"&gt;  15:&lt;/span&gt;     }&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum16" style="color:#606060;"&gt;  16:&lt;/span&gt; }&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;

&lt;/p&gt;
&lt;p&gt;Bien, una vez con todo esto lo unico que nos queda es interactuar con nuestra base de datos, para ello lo que haremos es comprobar a la hora de inicializar nuestra aplicacion, si la base de datos existe y si esta no existe, la crearemos. &lt;/p&gt;
&lt;p&gt;


&lt;/p&gt;
&lt;div id="codeSnippetWrapper" style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;width:97.5%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;cursor:text;border:silver 1px solid;padding:4px;"&gt;
&lt;div id="codeSnippet" style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;
&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum1" style="color:#606060;"&gt;   1:&lt;/span&gt; &lt;span style="color:#008000;"&gt;// Constructor&lt;/span&gt;&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum2" style="color:#606060;"&gt;   2:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; MainPage()&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum3" style="color:#606060;"&gt;   3:&lt;/span&gt; {&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum4" style="color:#606060;"&gt;   4:&lt;/span&gt;     InitializeComponent();&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum5" style="color:#606060;"&gt;   5:&lt;/span&gt;  &lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum6" style="color:#606060;"&gt;   6:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; ConnectionString = &lt;span style="color:#006080;"&gt;&amp;quot;Data Source=&amp;#39;isostore:/Pruebas.sdf&amp;#39;&amp;quot;&lt;/span&gt;;&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum7" style="color:#606060;"&gt;   7:&lt;/span&gt;  &lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum8" style="color:#606060;"&gt;   8:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;using&lt;/span&gt; (ContextoDeDatos Contexto = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; ContextoDeDatos(ConnectionString))&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum9" style="color:#606060;"&gt;   9:&lt;/span&gt;     {&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum10" style="color:#606060;"&gt;  10:&lt;/span&gt;         &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (Contexto.DatabaseExists() == &lt;span style="color:#0000ff;"&gt;false&lt;/span&gt;)&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum11" style="color:#606060;"&gt;  11:&lt;/span&gt;         {&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum12" style="color:#606060;"&gt;  12:&lt;/span&gt;             Contexto.CreateDatabase();&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum13" style="color:#606060;"&gt;  13:&lt;/span&gt;         }&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum14" style="color:#606060;"&gt;  14:&lt;/span&gt;     }&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum15" style="color:#606060;"&gt;  15:&lt;/span&gt; }&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Lo primero que nos debe de resultar un tanto extra&amp;ntilde;o es el formato de la cadena de conexi&amp;oacute;n utilizada, a grandes rasgos le estamos diciendo a nuestra aplicaci&amp;oacute;n que la base de datos se encuentra dentro del Isolated Storage de la propia aplicaci&amp;oacute;n y que en la ruta ra&amp;iacute;z de ese Isolated Storage el fichero se llama Pruebas, con la extensi&amp;oacute;n com&amp;uacute;n a SQL Server Ce &amp;ldquo;.sdf&amp;rdquo;. &lt;/p&gt;
&lt;p&gt;De momento lo dejamos aqu&amp;iacute;, en el pr&amp;oacute;ximo post, hablare de donde exactamente se encuentra nuestra base de datos, como podemos acceder a ella de forma remota, para comprobarla y dem&amp;aacute;s, as&amp;iacute; como un repaso de las herramientas de terceros que nos pueden facilitarnos un poco la vida en la creaci&amp;oacute;n del mapeo de nuestras bases de datos.&lt;/p&gt;
&lt;p&gt;&lt;iframe scrolling="no" marginwidth="0" frameborder="0" src="https://skydrive.live.com/embedicon.aspx/.Public/Blog/DemoSqlCeV001.zip?cid=c5a73fd5793017e9&amp;amp;sc=documents" marginheight="0" style="background-color:#ffffff;margin:3px;width:103px;height:125px;padding:0px;"&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;p&gt;En el fichero superior pod&amp;eacute;is encontrar el c&amp;oacute;digo fuente de la peque&amp;ntilde;a aplicaci&amp;oacute;n de ejemplo en donde se utiliza todo lo explicado anteriormente.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Nota: &amp;ldquo;Ash nazg durbatul&amp;ucirc;k, ash nazg gimbatul... Ash nazg thrakatul&amp;ucirc;k agh burzum-ishi krimpatul&amp;rdquo; es el texto completo escrito en la lengua de Mordor, el cual estaba inscrito en el Anillo que port&amp;oacute;, primero, Bilbo Bols&amp;oacute;n y luego Frodo Bols&amp;oacute;n, propiedad de Sauron, cuya traducci&amp;oacute;n es &amp;ldquo;Un anillo para gobernarlos a todos, un Anillo para encontrarlos, un Anillo para atraerlos a todos y atarlos en las Tinieblas&amp;rdquo;.&lt;/em&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=199813" width="1" height="1"&gt;</description><enclosure url="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Components.PostAttachments/00.00.19.98.13/DemoSqlCeV001.zip" length="73253" type="application/x-zip-compressed" /><category domain="http://geeks.ms/blogs/rserna/archive/tags/SQL+CE/default.aspx">SQL CE</category><category domain="http://geeks.ms/blogs/rserna/archive/tags/Windows+Phone+7/default.aspx">Windows Phone 7</category></item></channel></rss>