<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Blog de Matthieu MEZIL &#187; ADO .Net</title>
	<atom:link href="https://blog.developpez.com/matthieu/pcategory/net/ado-net/feed" rel="self" type="application/rss+xml" />
	<link>https://blog.developpez.com/matthieu</link>
	<description></description>
	<lastBuildDate>Fri, 14 Dec 2007 21:05:16 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.1.42</generator>
	<item>
		<title>Update LINQ To SQL : toutes les colonnes, non pas forcément</title>
		<link>https://blog.developpez.com/matthieu/p4449/net/update_linq_to_sql_toutes_les_colonnes_n</link>
		<comments>https://blog.developpez.com/matthieu/p4449/net/update_linq_to_sql_toutes_les_colonnes_n#comments</comments>
		<pubDate>Sun, 28 Oct 2007 19:05:31 +0000</pubDate>
		<dc:creator><![CDATA[Matthieu MEZIL]]></dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[ADO .Net]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[LINQ]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[VB]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[J&#8217;avais blogué sur le fait que le Update de LINQ To SQL se faisait sur toutes les colonnes, y compris celles qui n&#8217;ont pas changés, ce qui peut poser des problèmes si vous avez des triggers sur le update de la table SQL. En réalité, j&#8217;avais bloggué un peu vite. En effet, de même qu&#8217;il est possible de ne charger des colonnes qu&#8217;au moment de l&#8217;utilisation de la propriété associée (Delay Loaded = true) avec [&#8230;]]]></description>
				<content:encoded><![CDATA[<p><a href="http://blog.developpez.com/index.php?blog=121&amp;title=update_de_linq_to_sql_toutes_les_colonne&amp;more=1&amp;c=1&amp;tb=1&amp;pb=1">J&rsquo;avais blogué sur le fait que le Update de LINQ To SQL se faisait sur toutes les colonnes, y compris celles qui n&rsquo;ont pas changés, ce qui peut poser des problèmes si vous avez des triggers sur le update de la table SQL</a>.<br />
En réalité, j&rsquo;avais bloggué un peu vite. En effet, de même qu&rsquo;il est possible de ne charger des colonnes qu&rsquo;au moment de l&rsquo;utilisation de la propriété associée (Delay Loaded = true) avec <code class="codecolorer text default"><span class="text">System.Data.Linq.Link&lt;T&gt;</span></code>, il est possible de ne pas inclure une colonne à l&rsquo;update si celle-ci n&rsquo;a pas été modifiée avec l&rsquo;attribut <code class="codecolorer text default"><span class="text">UpdateCheck=UpdateCheck.WhenChanged</span></code>.</p>
<p>Vous pouvez retrouver Delay Loaded et Update Check dans la property grid du designer LINQ To SQL.</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Comment récupérer le context depuis un IQueryable&lt;T&gt;</title>
		<link>https://blog.developpez.com/matthieu/p4416/net/comment_recuperer_le_context_depuis_un_i</link>
		<comments>https://blog.developpez.com/matthieu/p4416/net/comment_recuperer_le_context_depuis_un_i#comments</comments>
		<pubDate>Fri, 19 Oct 2007 23:32:20 +0000</pubDate>
		<dc:creator><![CDATA[Matthieu MEZIL]]></dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[ADO .Net]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[LINQ]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[VB]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Imaginons le cas suivant : J&#8217;ai une instance vers un IQueryable d&#8217;entities (exactement un System.Data.Linq.DataQuery) mais je n&#8217;ai plus de référence vers le context utilisé pour créer la requête. En parcourant les éléments de mon IQueryable&#60;T&#62;, je peux les modifier. Ensuite, il ma faut appeler la méthode SubmitChanges() sur le context pour que ces modifications soient persistantes en base. Or, comme je l&#8217;ai dit, je n&#8217;ai plus de référence sur le contexte. La seule solution [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Imaginons le cas suivant :<br />
J&rsquo;ai une instance vers un IQueryable d&rsquo;entities (exactement un System.Data.Linq.DataQuery) mais je n&rsquo;ai plus de référence vers le context utilisé pour créer la requête. En parcourant les éléments de mon IQueryable&lt;T&gt;, je peux les modifier. Ensuite, il ma faut appeler la méthode SubmitChanges() sur le context pour que ces modifications soient persistantes en base.<br />
Or, comme je l&rsquo;ai dit, je n&rsquo;ai plus de référence sur le contexte.<br />
La seule solution que j&rsquo;ai trouvé est la suivante : passé par la reflexion pour accéder à un champ privé d&rsquo;une classe internal au Framework (System.Data.Linq.DataQuery) et récupérer ainsi le DataContext :</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">var qDb = (DataClasses1DataContext)(q.GetType().GetField(&quot;context&quot;, BindingFlags.NonPublic | BindingFlags.Instance).GetValue(q)); <br />
qDb.SubmitChanges();</div></div>
<p>Cela marche effectivement avec les Table<T> mais pour les EntitySet<T>, cela est plus compliqué. On peut supposait que T est un Table<T> et par conséquent, récupérer le context par reflexion mais la seule contrainte sur T est que ce soit une classe : </p>
<p><code class="codecolorer text default"><span class="text">public sealed class EntitySet&lt;TEntity&gt; : IList, ICollection, IList&lt;TEntity&gt;, ICollection&lt;TEntity&gt;, IEnumerable&lt;TEntity&gt;, IEnumerable, IListSource, IEntitySet where TEntity: class</span></code></p>
<p>Donc en gros, ne perdez pas de référence sur un DataContext si vous gardez une référence vers une query.</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OnValidate</title>
		<link>https://blog.developpez.com/matthieu/p4430/net/onvalidate</link>
		<comments>https://blog.developpez.com/matthieu/p4430/net/onvalidate#comments</comments>
		<pubDate>Wed, 24 Oct 2007 22:01:02 +0000</pubDate>
		<dc:creator><![CDATA[Matthieu MEZIL]]></dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[ADO .Net]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[LINQ]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[VB]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Je viens d&#8217;avoir une énorme surprise en regardant de plus près le code généré par le designer de LINQ To SQL. Dans chaque classe d&#8217;entité, il y a une partial method OnValidate. Cependant cette méthode n&#8217;est jamais appelée ! En fait si, elle est appelée par la classe ChangeProcessor, dans la méthode ValidateAll&#8230; par reflexion !!!]]></description>
				<content:encoded><![CDATA[<p>Je viens d&rsquo;avoir une énorme surprise en regardant de plus près le code généré par le designer de LINQ To SQL.<br />
Dans chaque classe d&rsquo;entité, il y a une partial method OnValidate. Cependant cette méthode n&rsquo;est jamais appelée ! En fait si, elle est appelée par la classe ChangeProcessor, dans la méthode ValidateAll&#8230; par reflexion !!!</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Update de LINQ To SQL : Toutes les colonnes :(</title>
		<link>https://blog.developpez.com/matthieu/p4410/net/update_de_linq_to_sql_toutes_les_colonne</link>
		<comments>https://blog.developpez.com/matthieu/p4410/net/update_de_linq_to_sql_toutes_les_colonne#comments</comments>
		<pubDate>Thu, 18 Oct 2007 23:01:31 +0000</pubDate>
		<dc:creator><![CDATA[Matthieu MEZIL]]></dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[ADO .Net]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[LINQ]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[VB]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[J&#8217;avais précédemment blogué sur mon regret que le Update du SQLDataAdapter généré par le designer de DataSet faisait un Update sur toutes les colonnes, y compris celles qui n&#8217;avaient pas été modifié. C&#8217;est pareil avec LINQ To SQL]]></description>
				<content:encoded><![CDATA[<p><a href="http://blog.developpez.com/index.php?blog=121&amp;title=argggggggggg_les_sqldataadapter_genere_v&amp;more=1&amp;c=1&amp;tb=1&amp;pb=1">J&rsquo;avais précédemment blogué sur mon regret que le Update du SQLDataAdapter généré par le designer de DataSet faisait un Update sur toutes les colonnes, y compris celles qui n&rsquo;avaient pas été modifié</a>.<br />
C&rsquo;est pareil avec LINQ To SQL <img src="https://blog.developpez.com/matthieu/wp-includes/images/smilies/icon_sad.gif" alt=":(" class="wp-smiley" /></p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Un bug sur LINQ to SQL</title>
		<link>https://blog.developpez.com/matthieu/p3534/net/un_bug_sur_linq_to_sql</link>
		<comments>https://blog.developpez.com/matthieu/p3534/net/un_bug_sur_linq_to_sql#comments</comments>
		<pubDate>Sun, 20 May 2007 08:01:18 +0000</pubDate>
		<dc:creator><![CDATA[Matthieu MEZIL]]></dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[ADO .Net]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[LINQ]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[VB]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Imaginons une base de donnée avec une table Test. Dans un projet, nous rajoutons un LINQ to SQL File et nous y rajoutons la table Test. Nous voulons que le Insert, Update ou Delete sur cette table passe par une procédure stockée. Pour cela, nous rajoutons la proc stock via Object Relational Designer. Ensuite nous avons la possibilité de choisir si le Insert, Update ou Delete sur notre table se fera de façon &#171;&#160;classique&#160;&#187; ou [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Imaginons une base de donnée avec une table Test.<br />
Dans un projet, nous rajoutons un LINQ to SQL File et nous y rajoutons la table Test. Nous voulons que le Insert, Update ou Delete sur cette table passe par une procédure stockée. Pour cela, nous rajoutons la proc stock via Object Relational Designer. Ensuite nous avons la possibilité de choisir si le Insert, Update ou Delete sur notre table se fera de façon &laquo;&nbsp;classique&nbsp;&raquo; ou via une proc stock. Cependant, même si on choisit la proc stock, avec la VS Orcas Beta 1, il y a un petit bug et c&rsquo;est l&rsquo;insert, update ou delete &laquo;&nbsp;classique&nbsp;&raquo; qui ai effectué. On le voit très bien en affectant un TextWriter à la propriété Log du DataContext. Vivement la beta 2! <img src="https://blog.developpez.com/matthieu/wp-includes/images/smilies/icon_biggrin.gif" alt=":D" class="wp-smiley" /><br />
En plus, j&rsquo;ai vu dans <a href="http://int1.fp.sandpiper.net/soma/applications/zip/2007/DEV04/DEV04.zip">la présentation de LINQ au Mix 2007</a> quelque chose que je n&rsquo;ai pas réussi à reproduire avec la beta 1 : choisir le type de retour d&rsquo;une fonction SQL. Actuellement, Object Relational Designer en génère un, même si vous avez déjà le même.</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LINQ To SQL avec un Mapping XML</title>
		<link>https://blog.developpez.com/matthieu/p4304/net/linq_to_sql_avec_un_mapping_xml</link>
		<comments>https://blog.developpez.com/matthieu/p4304/net/linq_to_sql_avec_un_mapping_xml#comments</comments>
		<pubDate>Thu, 27 Sep 2007 18:09:47 +0000</pubDate>
		<dc:creator><![CDATA[Matthieu MEZIL]]></dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[ADO .Net]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[LINQ]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[VB]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Comme j&#8217;avais pu le lire sur THB (merci à Kader Yildirim et Mitsu), le mapping de LINQ To SQL peut se faire par un fichier externe XML. Guy Burstein revient sur ce point relativement méconnu.]]></description>
				<content:encoded><![CDATA[<p><a href="http://www.techheadbrothers.com/Articles.aspx/linq-360-degre-partie-4">Comme j&rsquo;avais pu le lire</a> sur <a href="http://www.techheadbrothers.com/">THB</a> (merci à Kader Yildirim et <a href="http://blogs.msdn.com/mitsufu">Mitsu</a>), le mapping de LINQ To SQL peut se faire par un fichier externe XML. <a href="http://blogs.microsoft.co.il/blogs/bursteg">Guy Burstein</a> <a href="http://blogs.microsoft.co.il/blogs/bursteg/archive/2007/09/27/25294.aspx">revient sur ce point relativement méconnu</a>.</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Test unitaires sur LINQ To SQL</title>
		<link>https://blog.developpez.com/matthieu/p4388/net/test_unitaires_sur_linq_to_sql</link>
		<comments>https://blog.developpez.com/matthieu/p4388/net/test_unitaires_sur_linq_to_sql#comments</comments>
		<pubDate>Mon, 15 Oct 2007 22:18:28 +0000</pubDate>
		<dc:creator><![CDATA[Matthieu MEZIL]]></dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[ADO .Net]]></category>
		<category><![CDATA[LINQ]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Ian Cooper a écrit un excellent article sur le sujet.]]></description>
				<content:encoded><![CDATA[<p><a href="http://iancooper.spaces.live.com/blog/">Ian Cooper</a> a écrit <a href="http://iancooper.spaces.live.com/blog/cns!844BD2811F9ABE9C!397.entry">un excellent article sur le sujet</a>.</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LINQ To DataSet &#8211; Data Binding</title>
		<link>https://blog.developpez.com/matthieu/p4383/net/linq_to_dataset_data_binding</link>
		<comments>https://blog.developpez.com/matthieu/p4383/net/linq_to_dataset_data_binding#comments</comments>
		<pubDate>Mon, 15 Oct 2007 20:00:42 +0000</pubDate>
		<dc:creator><![CDATA[Matthieu MEZIL]]></dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[ADO .Net]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[LINQ]]></category>
		<category><![CDATA[VB]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Erick Thompson a publié un excellent article sur le sujet.]]></description>
				<content:encoded><![CDATA[<p><a href="http://blogs.msdn.com/erickt">Erick Thompson</a> a publié <a href="http://blogs.msdn.com/erickt/archive/2007/08/24/linq-to-dataset-data-binding.aspx">un excellent article sur le sujet</a>.</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SQL Metal : le changement de nom n&#8217;impacte pas le code</title>
		<link>https://blog.developpez.com/matthieu/p4380/net/sql_metal_le_changement_de_nom_n_impacte</link>
		<comments>https://blog.developpez.com/matthieu/p4380/net/sql_metal_le_changement_de_nom_n_impacte#comments</comments>
		<pubDate>Mon, 15 Oct 2007 02:33:31 +0000</pubDate>
		<dc:creator><![CDATA[Matthieu MEZIL]]></dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[ADO .Net]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[LINQ]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[VB]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Avant de commencer, rappelons que nous parlons là de VS 2008 Beta 2 et que cela pourra être corrigé dans la version finale. Imaginons une table Client et une table Facture. Une Facture référence un Client. Du coup, dans la classe Facture générée par le designer LINQ To SQL (SQL Metal), je me retrouve avec deux propriétés Client et Client1. Client est de type &#60;le type de la colonne Client dans la table Facture&#62; et [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Avant de commencer, rappelons que nous parlons là de VS 2008 Beta 2 et que cela pourra être corrigé dans la version finale.<br />
Imaginons une table Client et une table Facture. Une Facture référence un Client.<br />
Du coup, dans la classe Facture générée par le designer LINQ To SQL (SQL Metal), je me retrouve avec deux propriétés Client et Client1. Client est de type &lt;le type de la colonne Client dans la table Facture&gt; et Client1 est de type &lt;la classe Client générée par SQL Metal&gt;.<br />
Imaginons que dans notre code, on utilise Client1. Si, via le designer, on renomme Client1 en ClientEntity, notre code reste à Client1 <img src="https://blog.developpez.com/matthieu/wp-includes/images/smilies/icon_sad.gif" alt=":(" class="wp-smiley" /></p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LINQ To SQL RTM</title>
		<link>https://blog.developpez.com/matthieu/p4368/net/linq_to_sql_rtm</link>
		<comments>https://blog.developpez.com/matthieu/p4368/net/linq_to_sql_rtm#comments</comments>
		<pubDate>Fri, 12 Oct 2007 07:41:24 +0000</pubDate>
		<dc:creator><![CDATA[Matthieu MEZIL]]></dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[ADO .Net]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[LINQ]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[VB]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Dinesh Kulkarni vient de poster deux billets relatifs à LINQ To SQL RTM vs Beta 2 et au designer LINQ To SQL (SQLMetal).]]></description>
				<content:encoded><![CDATA[<p><a href="http://blogs.msdn.com/dinesh.kulkarni">Dinesh Kulkarni</a> vient de poster deux billets relatifs à <a href="http://blogs.msdn.com/dinesh.kulkarni/archive/2007/10/09/linq-to-sql-breaking-changes-from-beta2-to-rtm-compiled-from-my-linq-forum-posts.aspx">LINQ To SQL RTM vs Beta 2</a> et au <a href="http://blogs.msdn.com/dinesh.kulkarni/archive/2007/10/09/linq-to-sql-features-not-in-the-designer-sqlmetal.aspx">designer LINQ To SQL (SQLMetal)</a>.</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
