<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>The other side of complexity</title>
	<atom:link href="http://condron.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://condron.wordpress.com</link>
	<description>Simplicy in Software Design and Code</description>
	<lastBuildDate>Sat, 08 Mar 2008 02:10:14 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='condron.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/6669d6df3646841c8609367c854e66f1?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>The other side of complexity</title>
		<link>http://condron.wordpress.com</link>
	</image>
			<item>
		<title>How to consistently and efficiently produce good software solutions</title>
		<link>http://condron.wordpress.com/2008/02/24/how-to-consistently-and-efficiently-produce-good-software-solutions/</link>
		<comments>http://condron.wordpress.com/2008/02/24/how-to-consistently-and-efficiently-produce-good-software-solutions/#comments</comments>
		<pubDate>Sun, 24 Feb 2008 20:16:52 +0000</pubDate>
		<dc:creator>Chris Condron</dc:creator>
				<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Process]]></category>

		<guid isPermaLink="false">http://condron.wordpress.com/2008/02/24/how-to-consistently-and-efficiently-produce-good-software-solutions/</guid>
		<description><![CDATA[More and more my focus has been turning to &#8220;How to consistently and efficiently produce good software solutions.&#8221; Identifying the core principles that make this approach or that approach work or fail in situation X.
The questions I&#8217;d like to answer include; given problem domain Y what is the best organizational structure and methodology to produce [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=condron.wordpress.com&blog=2963037&post=9&subd=condron&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>More and more my focus has been turning to &ldquo;How to consistently and efficiently produce good software solutions.&rdquo; Identifying the core principles that make this approach or that approach work or fail in situation X.</p>
<p>The questions I&rsquo;d like to answer include; given problem domain Y what is the best organizational structure and methodology to produce solutions? Given organizational structure Z and problem space A what is the best methodology?</p>
<p>&nbsp;That seems to&nbsp;imply&nbsp;a nice set of core elements</p>
<ol>
<li>Orgainzation</li>
<li>Methodolgy</li>
<li>Problem Domain</li>
</ol>
<p>&nbsp;</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/condron.wordpress.com/9/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/condron.wordpress.com/9/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/condron.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/condron.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/condron.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/condron.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/condron.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/condron.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/condron.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/condron.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/condron.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/condron.wordpress.com/9/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=condron.wordpress.com&blog=2963037&post=9&subd=condron&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://condron.wordpress.com/2008/02/24/how-to-consistently-and-efficiently-produce-good-software-solutions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a7f3abc9de1c7aea50b3d997f578d08f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Chris Condron</media:title>
		</media:content>
	</item>
		<item>
		<title>Development and Documentation</title>
		<link>http://condron.wordpress.com/2008/02/24/development-and-documentation/</link>
		<comments>http://condron.wordpress.com/2008/02/24/development-and-documentation/#comments</comments>
		<pubDate>Sun, 24 Feb 2008 19:26:07 +0000</pubDate>
		<dc:creator>Chris Condron</dc:creator>
				<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Process]]></category>

		<guid isPermaLink="false">http://condron.wordpress.com/2008/02/24/development-and-documentation/</guid>
		<description><![CDATA[I started writing my about page and it turned into a post.
It stared with this:
I am a Sr Architect currently leading the QA Architecture domain for a regional insurance company. I have been writing code for about 25 years. I&#8217;ve been writing code&#160;professionally for about 15. I have been designing and creating custom enterprise automation [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=condron.wordpress.com&blog=2963037&post=7&subd=condron&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I started writing my about page and it turned into a post.</p>
<p>It stared with this:</p>
<p>I am a Sr Architect currently leading the QA Architecture domain for a regional insurance company. I have been writing code for about 25 years. I&#8217;ve been writing code&nbsp;professionally for about 15. I have been designing and creating custom enterprise automation solutions and frameworks for fortune 500 companies for about 10 years. </p>
<p>I also have founded or been a founding member of&nbsp;several small technology and consulting companies. These range from, teaching Chess to troubled youth; Restaurants (never achieved funding); Web Hosting;&nbsp;Custom Telecom Testing and Certification Solutions; and Online Music Sales.</p>
<p>&nbsp;</p>
<p>And&nbsp;here is the post </p>
<p>As enterprise QA solutions&nbsp;(good ones at least) are tightly coupled to the SDLC I have also become involved with development process, design for test and standards.&nbsp; My current beliefs on process and documentation is that there is an inverse relationship between, team connectivity and communication; and the need for formal documentation. i.e. for a small tight team, go agile, no docs all talk. for large dispersed team standards. process and docs are a must to succeed. My basic approach is to advocate lightweight and effective documentation. It should be easy to produce and contain thing people need to know. This also means that if you can&#8217;t hire a small team of quality developers to complete the project you need to spend some time thinking about how all of your docs work together. </p>
<p>Basically, treat you documentation and process as&nbsp;you would a software project, architect it and only create what you need. </p>
<p>Conceptually one can think of a software project as a writing exercise. Consider a project using a theoretical process in a large company: </p>
<p>Someone in the business gets and idea. </p>
<ol>
<li>
<div>They write an email and see if people like the idea. </div>
</li>
<li>
<div>They write a charter document&nbsp;detailing the concept and what is in and out of scope for other business people to decide if they want it and get some idea of how much that would cost. </div>
</li>
<li>
<div>Then they bring in the BAs to write a business requirements version of the idea detailing all the things this project would do for the business</div>
</li>
<li>
<div>Next the Architecure staff writes a technical version of the idea talking about how this would work.</div>
</li>
<li>
<div>Meanwhile the BAs write a feature requirements document detailing the changes to the systems that would produce the required effects.</div>
</li>
<li>
<div>Now the development team writes a techinical document on how to write code to make the systems procude the changes the BAs have requested. </div>
</li>
<li>
<div>Finally some of the developers write code that the machines read to produce the desired effects.</div>
</li>
<li>
<div>During all of this QA is writing up notes on where and how all of these documents and code don&rsquo;t agree, and making people go back and rethink and change what they wrote.</div>
</li>
</ol>
<p>The code in effect is the final draft of a techincal paper. Formal process say all of the drafts are writen to standards by different groups. Agile process says focus on the final draft and make all of your changes there.</p>
<p>The basic problem all of this is addressing is that the entirety of&nbsp;the conceptual model for a software project quickly becomes to big for any one person to hold in their head. As soon as you need to share the model with a second person you have a problem. There are so many details and aspects of the project that interconnect and cross impact that you can&rsquo;t even just put it in one document.</p>
<p>In agile you build a shared mindset and set of assumtions that you keep current through constant communication. Good for small teams, hard to share to larger less connected groups. </p>
<p>In formal proccess you publish&nbsp;standards and walk through a know proccess and series of documents. More overhead, but scales much better for large loosly connected groups.</p>
<p>Good process and architecture addresses the core issue of complexity in the conceptual model through a number of appraoches. I think <a href="http://www.amazon.com/Domain-Driven-Design-Tackling-Complexity-Software/dp/0321125215">Domain-Driven Design </a>by Evans is a&nbsp;tour-de-force on the subject. Model clarity,&nbsp;separtion of domains, and&nbsp;the ubiquetous language to link the levels in the process stack&nbsp;are all wonderfull ways to make everything work much better.</p>
<p>More on this later.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/condron.wordpress.com/7/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/condron.wordpress.com/7/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/condron.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/condron.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/condron.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/condron.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/condron.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/condron.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/condron.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/condron.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/condron.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/condron.wordpress.com/7/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=condron.wordpress.com&blog=2963037&post=7&subd=condron&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://condron.wordpress.com/2008/02/24/development-and-documentation/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a7f3abc9de1c7aea50b3d997f578d08f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Chris Condron</media:title>
		</media:content>
	</item>
		<item>
		<title>Blogging Code</title>
		<link>http://condron.wordpress.com/2008/02/24/blogging-code/</link>
		<comments>http://condron.wordpress.com/2008/02/24/blogging-code/#comments</comments>
		<pubDate>Sun, 24 Feb 2008 07:17:17 +0000</pubDate>
		<dc:creator>Chris Condron</dc:creator>
				<category><![CDATA[Code]]></category>

		<guid isPermaLink="false">http://condron.wordpress.com/2008/02/24/blogging-code/</guid>
		<description><![CDATA[I found out how to blog code snippets here
&#160;
       <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=condron.wordpress.com&blog=2963037&post=6&subd=condron&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I found out how to blog code snippets <a href="http://blogs.msdn.com/noahc/archive/2006/07/06/658458.aspx#7454989">here</a></p>
<p>&nbsp;</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/condron.wordpress.com/6/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/condron.wordpress.com/6/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/condron.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/condron.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/condron.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/condron.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/condron.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/condron.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/condron.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/condron.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/condron.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/condron.wordpress.com/6/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=condron.wordpress.com&blog=2963037&post=6&subd=condron&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://condron.wordpress.com/2008/02/24/blogging-code/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a7f3abc9de1c7aea50b3d997f578d08f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Chris Condron</media:title>
		</media:content>
	</item>
		<item>
		<title>Detached Data in DLinq</title>
		<link>http://condron.wordpress.com/2008/02/24/detached-data-in-dlinq/</link>
		<comments>http://condron.wordpress.com/2008/02/24/detached-data-in-dlinq/#comments</comments>
		<pubDate>Sun, 24 Feb 2008 06:55:43 +0000</pubDate>
		<dc:creator>Chris Condron</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[DLinQ]]></category>

		<guid isPermaLink="false">http://condron.wordpress.com/2008/02/24/detached-data-in-dlinq/</guid>
		<description><![CDATA[I was reading two good blogs about Linq to SQL and ASP.Net applications&#160; here&#160;and here.
Based on the pattern set up by Rocky Moore (see first link) I came up with this code. Using generics and a little bit of reflection in a base class.
Here is the base class

&#160;&#160; public class detachableEntity&#60;T&#62; where T : detachableEntity&#60;T&#62;, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=condron.wordpress.com&blog=2963037&post=5&subd=condron&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I was reading two good blogs about Linq to SQL and ASP.Net applications&nbsp; <a href="http://www.rockymoore.com/TheCoder/archive/2007/11/03/LINQ_Disconnected_Attach_no_Change_tracking_fix.aspx">here</a>&nbsp;and <a href="http://west-wind.com/weblog/posts/135659.aspx">here</a>.</p>
<p>Based on the pattern set up by Rocky Moore (see first link) I came up with this code. Using generics and a little bit of reflection in a base class.</p>
<p>Here is the base class</p>
<div style="border-right:windowtext 1pt solid;border-top:windowtext 1pt solid;background:#f3f3f3;border-left:windowtext 1pt solid;border-bottom:windowtext 1pt solid;padding:6pt 4pt;">
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;font-family:'Courier New';"><span>&nbsp;&nbsp; </span><span style="color:blue;">public</span> <span style="color:blue;">class</span> <span style="color:#2b91af;">detachableEntity</span>&lt;T&gt; <span style="color:blue;">where</span> T : <span style="color:#2b91af;">detachableEntity</span>&lt;T&gt;, <span style="color:blue;">new</span>()</span></p>
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;font-family:'Courier New';"><span>&nbsp;&nbsp; </span>{</span></p>
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;font-family:'Courier New';"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">public</span> <span style="color:blue;">void</span> OnDataLoaded()</span></p>
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;font-family:'Courier New';"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>{</span></p>
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;font-family:'Courier New';"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>original = Clone();</span></p>
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;font-family:'Courier New';"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}</span></p>
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;font-family:'Courier New';"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">public</span> T original { <span style="color:blue;">get</span>; <span style="color:blue;">set</span>; }</span></p>
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;font-family:'Courier New';">&nbsp;</span></p>
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;font-family:'Courier New';"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">public</span> T Copy()</span></p>
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;font-family:'Courier New';"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>{</span></p>
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;font-family:'Courier New';"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">return</span> Copy((T)<span style="color:blue;">this</span>);</span></p>
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;font-family:'Courier New';"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}</span></p>
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;font-family:'Courier New';"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">public</span> <span style="color:blue;">static</span> T Copy(T Old)</span></p>
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;font-family:'Courier New';"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>{</span></p>
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;font-family:'Courier New';"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span>&nbsp;&nbsp; </span>T newItem = Clone(Old);</span></p>
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;font-family:'Courier New';"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>newItem.OnDataLoaded(); <span style="color:green;">// set the original state for the new object to the currect state </span></span></p>
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;font-family:'Courier New';"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">return</span> newItem;</span></p>
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;font-family:'Courier New';"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}</span></p>
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;font-family:'Courier New';"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">public</span> T Clone()</span></p>
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;font-family:'Courier New';"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>{</span></p>
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;font-family:'Courier New';"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">return</span> Clone((T)<span style="color:blue;">this</span>);</span></p>
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;font-family:'Courier New';"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}</span></p>
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;font-family:'Courier New';"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">public</span> <span style="color:blue;">static</span> T Clone(T item)</span></p>
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;font-family:'Courier New';"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>{</span></p>
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;font-family:'Courier New';"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">if</span> (item == <span style="color:blue;">null</span>)</span></p>
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;font-family:'Courier New';"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">return</span> <span style="color:blue;">null</span>;</span></p>
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;font-family:'Courier New';">&nbsp;</span></p>
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;font-family:'Courier New';"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>T newItem = <span style="color:blue;">new</span> T();</span></p>
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;font-family:'Courier New';"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:green;">// copy all subclass properties.</span></span></p>
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;font-family:'Courier New';"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">foreach</span><font color="#0000ff"> </font>(<span style="color:#2b91af;">PropertyInfo</span><font color="#2b91af"> </font>prop <span style="color:blue;">in</span> item.GetType().GetProperties())</span></p>
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;font-family:'Courier New';"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>{</span></p>
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;font-family:'Courier New';"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:#2b91af;">PropertyInfo</span> prop2 = item.GetType().GetProperty(prop.Name);</span></p>
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;font-family:'Courier New';"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>prop2.SetValue(newItem, prop.GetValue(item, <span style="color:blue;">null</span>), <span style="color:blue;">null</span>);</span></p>
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;font-family:'Courier New';"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}</span></p>
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;font-family:'Courier New';"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:green;">//the two items now share the same orginal state object, fix this by </span></span></p>
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;font-family:'Courier New';"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:green;">//cloning the original state object on the item that to create a new original state</span></span></p>
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;font-family:'Courier New';"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:green;">//object for the new item</span></span></p>
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;font-family:'Courier New';"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">if</span> (item.original != <span style="color:blue;">null</span>)</span></p>
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;font-family:'Courier New';"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>newItem.original = item.original.Clone();</span></p>
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;font-family:'Courier New';"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">return</span> newItem;</span></p>
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;font-family:'Courier New';"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}</span></p>
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;border-bottom:medium none;margin:0 0 10pt;padding:0;"><span style="font-size:10pt;line-height:115%;font-family:'Courier New';"><span>&nbsp;&nbsp; </span>}</span></p>
</div>
<p>In the partial classes created by Linq Designer here is how to add the base class</p>
<p>As the pattern is fixed, it is a good candidate for replace all in the partial class file.</p>
<div style="border-right:windowtext 1pt solid;border-top:windowtext 1pt solid;background:#f3f3f3;border-left:windowtext 1pt solid;border-bottom:windowtext 1pt solid;padding:6pt 4pt;">
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;font-family:'Courier New';"><span>&nbsp;&nbsp; </span><span style="color:blue;">partial</span> <span style="color:blue;">class</span> <span style="color:#2b91af;">Address</span> : <span style="color:#2b91af;">detachableEntity</span>&lt;<span style="color:#2b91af;">Address</span>&gt;</span></p>
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;font-family:'Courier New';"><span>&nbsp;&nbsp; </span>{</span></p>
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;font-family:'Courier New';"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue;">partial</span> <span style="color:blue;">void</span> OnLoaded() { <span style="color:blue;">base</span>.OnDataLoaded(); }</span></p>
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;font-family:'Courier New';">&nbsp;</span></p>
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;font-family:'Courier New';"><span>&nbsp;&nbsp; </span>}</span></p>
</div>
<p>and a usage example</p>
<div style="border-right:windowtext 1pt solid;border-top:windowtext 1pt solid;background:#f3f3f3;border-left:windowtext 1pt solid;border-bottom:windowtext 1pt solid;padding:6pt 4pt;">
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;color:blue;font-family:'Courier New';">static</span><span style="font-size:10pt;font-family:'Courier New';"> <span style="color:blue;">void</span> Main(<span style="color:blue;">string</span>[] args)</span></p>
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;font-family:'Courier New';">{</span></p>
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;text-indent:0.5in;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;color:green;font-family:'Courier New';">//Create new Entity</span></p>
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;font-family:'Courier New';"><span>&nbsp;&nbsp; </span><span style="color:#2b91af;">Address</span> home = <span style="color:blue;">new</span> <span style="color:#2b91af;">Address</span>();</span></p>
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;font-family:'Courier New';"><span>&nbsp;&nbsp; </span><span style="color:green;">//Create new data context</span></span></p>
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;font-family:'Courier New';"><span>&nbsp;&nbsp; </span><span style="color:#2b91af;">AdventureWorksDataContext</span> AW = <span style="color:blue;">new</span> <span style="color:#2b91af;">AdventureWorksDataContext</span>();</span></p>
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;font-family:'Courier New';"><span>&nbsp;&nbsp; </span><span style="color:green;">//Get Data</span></span></p>
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;font-family:'Courier New';"><span>&nbsp;&nbsp; </span>home = AW.Addresses.First();</span></p>
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;font-family:'Courier New';">&nbsp;</span></p>
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;font-family:'Courier New';"><span>&nbsp;&nbsp; </span><span style="color:green;">// Disconnect Data Context</span></span></p>
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;font-family:'Courier New';"><span>&nbsp;&nbsp; </span>AW = <span style="color:blue;">null</span>;</span></p>
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;font-family:'Courier New';">&nbsp;</span></p>
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;font-family:'Courier New';"><span>&nbsp;&nbsp; </span><span style="color:green;">//Modify Data</span></span></p>
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;font-family:'Courier New';"><span>&nbsp;&nbsp; </span>home.City = home.City + <span style="color:#a31515;">&#8220;AAA&#8221;</span>;</span></p>
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;font-family:'Courier New';">&nbsp;</span></p>
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;font-family:'Courier New';"><span>&nbsp;&nbsp; </span><span style="color:green;">// New Data context</span></span></p>
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;font-family:'Courier New';"><span>&nbsp;&nbsp; </span>AW = <span style="color:blue;">new</span> <span style="color:#2b91af;">AdventureWorksDataContext</span>();</span></p>
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;font-family:'Courier New';"><span>&nbsp;&nbsp; </span><span style="color:green;">//Attach Entity</span></span></p>
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;font-family:'Courier New';"><span>&nbsp;&nbsp; </span>AW.Addresses.Attach(home, home.original);</span></p>
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;font-family:'Courier New';"><span>&nbsp;&nbsp; </span><span style="color:green;">//Review Changes</span></span></p>
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;font-family:'Courier New';"><span>&nbsp;&nbsp; </span><span style="color:#2b91af;">ChangeSet</span> Changes = AW.GetChangeSet();</span></p>
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;font-family:'Courier New';">&nbsp;</span></p>
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;font-family:'Courier New';"><span>&nbsp;&nbsp; </span><span style="color:green;">//Update Data Source</span></span></p>
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;font-family:'Courier New';"><span>&nbsp;&nbsp; </span>AW.SubmitChanges();</span></p>
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;font-family:'Courier New';">&nbsp;</span></p>
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;font-family:'Courier New';"><span>&nbsp;&nbsp; </span><span style="color:green;">//Dispose Data Context</span></span></p>
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;font-family:'Courier New';"><span>&nbsp;&nbsp; </span>AW.Dispose();</span></p>
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;font-family:'Courier New';"><span>&nbsp;&nbsp; </span>AW = <span style="color:blue;">null</span>;</span></p>
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;font-family:'Courier New';"><span>&nbsp;&nbsp; </span><span style="color:green;">//Dispose Entity</span></span></p>
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;font-family:'Courier New';"><span>&nbsp;&nbsp; </span>home = <span style="color:blue;">null</span>;</span></p>
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;font-family:'Courier New';">&nbsp;</span></p>
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;font-family:'Courier New';"><span>&nbsp;&nbsp; </span><span style="color:green;">//Create new Data Context </span></span></p>
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;font-family:'Courier New';"><span>&nbsp;&nbsp; </span><span style="color:blue;">using</span> (AW = <span style="color:blue;">new</span> <span style="color:#2b91af;">AdventureWorksDataContext</span>())</span></p>
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;font-family:'Courier New';"><span>&nbsp;&nbsp; </span>{</span></p>
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;font-family:'Courier New';"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:green;">//Create new Entity</span></span></p>
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;font-family:'Courier New';"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:#2b91af;">Address</span> NewHome = AW.Addresses.FirstOrDefault(addr =&gt; addr.City.Contains(<span style="color:#a31515;">&#8220;AAA&#8221;</span>));</span></p>
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;font-family:'Courier New';"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:green;">//Modify Data (remove earlier changes)</span></span></p>
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;font-family:'Courier New';"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>NewHome.City = NewHome.City.TrimEnd(<span style="color:blue;">new</span> <span style="color:blue;">char</span>[] { <span style="color:#a31515;">&#8216;A&#8217;</span> });</span></p>
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;font-family:'Courier New';"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:green;">//Submit Changes in the same context</span></span></p>
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;font-family:'Courier New';"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>AW.SubmitChanges();</span></p>
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;font-family:'Courier New';"><span>&nbsp;&nbsp; </span>}</span></p>
<p class="MsoNormal" style="border-right:medium none;border-top:medium none;background:#f3f3f3;border-left:medium none;line-height:normal;border-bottom:medium none;margin:0;padding:0;"><span style="font-size:10pt;font-family:'Courier New';">}</span></p>
</div>
<p>This should be quite useful for detached applications.</p>
<p>-Chris</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/condron.wordpress.com/5/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/condron.wordpress.com/5/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/condron.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/condron.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/condron.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/condron.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/condron.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/condron.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/condron.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/condron.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/condron.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/condron.wordpress.com/5/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=condron.wordpress.com&blog=2963037&post=5&subd=condron&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://condron.wordpress.com/2008/02/24/detached-data-in-dlinq/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a7f3abc9de1c7aea50b3d997f578d08f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Chris Condron</media:title>
		</media:content>
	</item>
	</channel>
</rss>