<?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>sharpreflections.net &#187; Sql Server</title>
	<atom:link href="http://blog.sharpreflections.net/category/sql-server/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.sharpreflections.net</link>
	<description>Thoughts about .Net, programming and other more important stuffs.</description>
	<lastBuildDate>Fri, 20 Nov 2009 00:24:04 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>SQL Injection</title>
		<link>http://blog.sharpreflections.net/2007/10/10/sql-injection/</link>
		<comments>http://blog.sharpreflections.net/2007/10/10/sql-injection/#comments</comments>
		<pubDate>Wed, 10 Oct 2007 20:45:40 +0000</pubDate>
		<dc:creator>matteosp</dc:creator>
				<category><![CDATA[Fun]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Software sucks]]></category>
		<category><![CDATA[Sql Server]]></category>

		<guid isPermaLink="false">http://sharpreflections.wordpress.com/2007/10/10/sql-injection/</guid>
		<description><![CDATA[
Source: xkcd, via: Pietro.
]]></description>
			<content:encoded><![CDATA[<p align="center"><a href="http://xkcd.com/327"><img src="http://imgs.xkcd.com/comics/exploits_of_a_mom.png" alt="Exploits of a Mom" border="0" height="164" width="555" /></a></p>
<p>Source: <a href="http://xkcd.com/" title="xkcd - A webcomic of romance, sarcasm, math, and language - By Randall Munroe" target="_blank">xkcd</a>, via: <a href="http://ptoniolo.wordpress.com/" title="Pietro Toniolo" target="_blank">Pietro</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sharpreflections.net/2007/10/10/sql-injection/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dynamics CRM as development platform: transparent substitution of CrmService with Filtered Views.</title>
		<link>http://blog.sharpreflections.net/2007/04/06/dynamics-crm-as-development-platform-transparent-substitution-of-crmservice-with-filtered-views/</link>
		<comments>http://blog.sharpreflections.net/2007/04/06/dynamics-crm-as-development-platform-transparent-substitution-of-crmservice-with-filtered-views/#comments</comments>
		<pubDate>Fri, 06 Apr 2007 19:41:27 +0000</pubDate>
		<dc:creator>matteosp</dc:creator>
				<category><![CDATA[.Net Programming]]></category>
		<category><![CDATA[Microsoft CRM 3.0]]></category>
		<category><![CDATA[Sql Server]]></category>

		<guid isPermaLink="false">http://sharpreflections.wordpress.com/2007/04/06/dynamics-crm-as-development-platform-transparent-substitution-of-crmservice-with-filtered-views/</guid>
		<description><![CDATA[In my last post I suggested not to directly use, in your code, the CrmService proxy class. I quickly mentioned some enhancements you can gain from this, let&#8217;s focus on substituting web service calls with database access on filtered views. Even if limited to read operations, this can increase a lot the performances of your [...]]]></description>
			<content:encoded><![CDATA[<p>In my last post I suggested not to directly use, in your code, the CrmService proxy class. I quickly mentioned some enhancements you can gain from this, let&#8217;s focus on <strong>substituting web service calls with database access on filtered views</strong>. Even if limited to read operations, this can increase a lot the performances of your system.</p>
<p>As we want the callers not to be aware of the way we retrieve data, we have to passing back data to them in the form they expect it: &#8220;BusinessEntity&#8221; derived classes or collection of them. This may seems hard, but it isn&#8217;t. You can build the statement in way that it will produce data in XML, in a format that can be directly deserialized in entity instances.</p>
<p>So, let&#8217;s view how we can:</p>
<ul>
<li>Compose the SQL statements in such a way the will produce the xml we need</li>
<li>Deserialize the data from xml to entities</li>
</ul>
<p>Take a look at this query:</p>
<pre><a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=WITH&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">WITH</a> XMLNAMESPACES
(
  '<span style="color:#8b0000;">http://www.w3.org/2001/XMLSchema</span>' <a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=as&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">as</a> xsd
, '<span style="color:#8b0000;">http://www.w3.org/2001/XMLSchema-instance</span>' <a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=as&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">as</a> xsi
, '<span style="color:#8b0000;">http://schemas.microsoft.com/crm/2006/WebServices</span>' <a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=as&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">as</a> crm
)
<a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=SELECT&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">SELECT</a> name <a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=as&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">as</a> '<span style="color:#8b0000;">crm:name</span>'
     , accountid <a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=as&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">as</a> '<span style="color:#8b0000;">crm:accountid</span>'
     , donotphonename <a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=as&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">as</a> '<span style="color:#8b0000;">crm:donotphone/@name</span>'
     , donotphone <a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=as&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">as</a> '<span style="color:#8b0000;">crm:donotphone</span>'
     , address1_shippingmethodcodename <a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=as&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">as</a> '<span style="color:#8b0000;">crm:address1_shippingmethodcode/@name</span>'
     , address1_shippingmethodcode <a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=as&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">as</a> '<span style="color:#8b0000;">crm:address1_shippingmethodcode</span>'
     , modifiedbyname <a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=as&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">as</a> '<span style="color:#8b0000;">crm:modifiedby/@name</span>'
     , modifiedbydsc <a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=as&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">as</a> '<span style="color:#8b0000;">crm:modifiedby/@dsc</span>'
     , modifiedby <a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=as&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">as</a> '<span style="color:#8b0000;">crm:modifiedby</span>'
     , createdbyname <a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=as&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">as</a> '<span style="color:#8b0000;">crm:createdby/@name</span>'
     , createdbydsc <a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=as&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">as</a> '<span style="color:#8b0000;">crm:createdby/@dsc</span>'
     , createdby <a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=as&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">as</a> '<span style="color:#8b0000;">crm:createdby</span>'
     , statuscodename <a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=as&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">as</a> '<span style="color:#8b0000;">crm:statuscode/@name</span>'
     , statuscode <a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=as&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">as</a> '<span style="color:#8b0000;">crm:statuscode</span>'
     , statecodename <a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=as&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">as</a> '<span style="color:#8b0000;">crm:statecode/@formattedValue</span>'
     , statecode <a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=as&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">as</a> '<span style="color:#8b0000;">crm:statecode</span>'
  <a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=FROM&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">FROM</a> Filteredaccount
   <a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=FOR&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">FOR</a> XML PATH ('<span style="color:#8b0000;">account</span>')</pre>
<p>The <strong>WITH XMLNAMESPACES</strong>, the field aliases and the <strong>FOR XML PATH</strong> do the magic, and we get data in this format:</p>
<pre><span style="color:#0000ff;">&lt;</span><span style="color:#800000;">account</span> <span style="color:#ff0000;">xmlns</span>:<span style="color:#ff0000;">crm</span>=<span style="color:#0000ff;">"http://schemas.microsoft.com/crm/2006/WebServices"</span> <span style="color:#ff0000;">xmlns</span>:<span style="color:#ff0000;">xsi</span>=<span style="color:#0000ff;">"http://www.w3.org/2001/XMLSchema-instance"</span> <span style="color:#ff0000;">xmlns</span>:<span style="color:#ff0000;">xsd</span>=<span style="color:#0000ff;">"http://www.w3.org/2001/XMLSchema"</span><span style="color:#0000ff;">&gt;</span>
  <span style="color:#0000ff;">&lt;</span><span style="color:#c71585;">crm</span>:<span style="color:#800000;">name</span><span style="color:#0000ff;">&gt;</span>Adventure Works Ltd.<span style="color:#0000ff;">&lt;/</span><span style="color:#c71585;">crm</span>:<span style="color:#800000;">name</span><span style="color:#0000ff;">&gt;</span>
  <span style="color:#0000ff;">&lt;</span><span style="color:#c71585;">crm</span>:<span style="color:#800000;">accountid</span><span style="color:#0000ff;">&gt;</span>E85D1177-EE17-DB11-87E4-0000E2998A6B<span style="color:#0000ff;">&lt;/</span><span style="color:#c71585;">crm</span>:<span style="color:#800000;">accountid</span><span style="color:#0000ff;">&gt;</span>
  <span style="color:#0000ff;">&lt;</span><span style="color:#c71585;">crm</span>:<span style="color:#800000;">modifiedby</span> <span style="color:#ff0000;">name</span>=<span style="color:#0000ff;">"CRM Administrator"</span> <span style="color:#ff0000;">dsc</span>=<span style="color:#0000ff;">"0"</span><span style="color:#0000ff;">&gt;</span>89A611D4-C7BD-DB11-A4E3-005056A80A71<span style="color:#0000ff;">&lt;/</span><span style="color:#c71585;">crm</span>:<span style="color:#800000;">modifiedby</span><span style="color:#0000ff;">&gt;</span>
  <span style="color:#0000ff;">&lt;</span><span style="color:#c71585;">crm</span>:<span style="color:#800000;">createdby</span> <span style="color:#ff0000;">name</span>=<span style="color:#0000ff;">"CRM Administrator"</span> <span style="color:#ff0000;">dsc</span>=<span style="color:#0000ff;">"0"</span><span style="color:#0000ff;">&gt;</span>89A611D4-C7BD-DB11-A4E3-005056A80A71<span style="color:#0000ff;">&lt;/</span><span style="color:#c71585;">crm</span>:<span style="color:#800000;">createdby</span><span style="color:#0000ff;">&gt;</span>
  <span style="color:#0000ff;">&lt;</span><span style="color:#c71585;">crm</span>:<span style="color:#800000;">statuscode</span> <span style="color:#ff0000;">name</span>=<span style="color:#0000ff;">"Active"</span><span style="color:#0000ff;">&gt;</span>1<span style="color:#0000ff;">&lt;/</span><span style="color:#c71585;">crm</span>:<span style="color:#800000;">statuscode</span><span style="color:#0000ff;">&gt;</span>
  <span style="color:#0000ff;">&lt;</span><span style="color:#c71585;">crm</span>:<span style="color:#800000;">statecode</span> <span style="color:#ff0000;">formattedValue</span>=<span style="color:#0000ff;">"Active"</span><span style="color:#0000ff;">&gt;</span>Active<span style="color:#0000ff;">&lt;/</span><span style="color:#c71585;">crm</span>:<span style="color:#800000;">statecode</span><span style="color:#0000ff;">&gt;</span>
<span style="color:#0000ff;">&lt;/</span><span style="color:#800000;">account</span><span style="color:#0000ff;">&gt;</span>
<span style="color:#0000ff;">&lt;</span><span style="color:#800000;">account</span> <span style="color:#ff0000;">xmlns</span>:<span style="color:#ff0000;">crm</span>=<span style="color:#0000ff;">"http://schemas.microsoft.com/crm/2006/WebServices"</span> <span style="color:#ff0000;">xmlns</span>:<span style="color:#ff0000;">xsi</span>=<span style="color:#0000ff;">"http://www.w3.org/2001/XMLSchema-instance"</span> <span style="color:#ff0000;">xmlns</span>:<span style="color:#ff0000;">xsd</span>=<span style="color:#0000ff;">"http://www.w3.org/2001/XMLSchema"</span><span style="color:#0000ff;">&gt;</span>
  <span style="color:#0000ff;">&lt;</span><span style="color:#c71585;">crm</span>:<span style="color:#800000;">name</span><span style="color:#0000ff;">&gt;</span>Contoso Inc.<span style="color:#0000ff;">&lt;/</span><span style="color:#c71585;">crm</span>:<span style="color:#800000;">name</span><span style="color:#0000ff;">&gt;</span>
  <span style="color:#0000ff;">&lt;</span><span style="color:#c71585;">crm</span>:<span style="color:#800000;">accountid</span><span style="color:#0000ff;">&gt;</span>A00ED7BB-9D0D-DB11-9073-000C293F9D57<span style="color:#0000ff;">&lt;/</span><span style="color:#c71585;">crm</span>:<span style="color:#800000;">accountid</span><span style="color:#0000ff;">&gt;</span>
  <span style="color:#0000ff;">&lt;</span><span style="color:#c71585;">crm</span>:<span style="color:#800000;">donotphone</span> <span style="color:#ff0000;">name</span>=<span style="color:#0000ff;">"Allow"</span><span style="color:#0000ff;">&gt;</span>0<span style="color:#0000ff;">&lt;/</span><span style="color:#c71585;">crm</span>:<span style="color:#800000;">donotphone</span><span style="color:#0000ff;">&gt;</span>
  <span style="color:#0000ff;">&lt;</span><span style="color:#c71585;">crm</span>:<span style="color:#800000;">modifiedby</span> <span style="color:#ff0000;">name</span>=<span style="color:#0000ff;">"CRM Administrator"</span> <span style="color:#ff0000;">dsc</span>=<span style="color:#0000ff;">"0"</span><span style="color:#0000ff;">&gt;</span>89A611D4-C7BD-DB11-A4E3-005056A80A71<span style="color:#0000ff;">&lt;/</span><span style="color:#c71585;">crm</span>:<span style="color:#800000;">modifiedby</span><span style="color:#0000ff;">&gt;</span>
  <span style="color:#0000ff;">&lt;</span><span style="color:#c71585;">crm</span>:<span style="color:#800000;">createdby</span> <span style="color:#ff0000;">name</span>=<span style="color:#0000ff;">"CRM Administrator"</span> <span style="color:#ff0000;">dsc</span>=<span style="color:#0000ff;">"0"</span><span style="color:#0000ff;">&gt;</span>89A611D4-C7BD-DB11-A4E3-005056A80A71<span style="color:#0000ff;">&lt;/</span><span style="color:#c71585;">crm</span>:<span style="color:#800000;">createdby</span><span style="color:#0000ff;">&gt;</span>
  <span style="color:#0000ff;">&lt;</span><span style="color:#c71585;">crm</span>:<span style="color:#800000;">statuscode</span> <span style="color:#ff0000;">name</span>=<span style="color:#0000ff;">"Active"</span><span style="color:#0000ff;">&gt;</span>1<span style="color:#0000ff;">&lt;/</span><span style="color:#c71585;">crm</span>:<span style="color:#800000;">statuscode</span><span style="color:#0000ff;">&gt;</span>
  <span style="color:#0000ff;">&lt;</span><span style="color:#c71585;">crm</span>:<span style="color:#800000;">statecode</span> <span style="color:#ff0000;">formattedValue</span>=<span style="color:#0000ff;">"Active"</span><span style="color:#0000ff;">&gt;</span>Active<span style="color:#0000ff;">&lt;/</span><span style="color:#c71585;">crm</span>:<span style="color:#800000;">statecode</span><span style="color:#0000ff;">&gt;</span>
<span style="color:#0000ff;">&lt;/</span><span style="color:#800000;">account</span><span style="color:#0000ff;">&gt;</span></pre>
<p>That is exactly what you need to obtain, with the help of XmlSerializer, a collection of accounts:</p>
<pre>XmlReader xmlReader = cmd.ExecuteXmlReader();
xmlReader.Read();

<span style="color:#0000ff;">while</span> (xmlReader.ReadState != ReadState.EndOfFile)
{
    xml = xmlReader.ReadOuterXml();
    StringReader reader = <span style="color:#0000ff;">new</span> StringReader(xml);

    account acc = serializer.Deserialize(reader) <span style="color:#0000ff;">as</span> account;
    accounts.Add(acc);
}

<span style="color:#008000;">// convert accounts in a BusinessEntitesCollection...</span></pre>
<p><strong>Note that</strong>:<br />
- the standard SQL syntax for a property is:</p>
<p align="left">, property <a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=as&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">as</a> &#8216;<span style="color:#8b0000;">crm:property</span>&#8216;</p>
<p>- properties expressed by CRM object model in form of &#8220;Lookup&#8221; are splitted, on the views, in three columns:</p>
<p>, property<font color="#ff0000">name</font> <a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=as&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">as</a> &#8216;<span style="color:#8b0000;">crm:property/@name</span>&#8216;<br />
, property<font color="#ff0000">dsc</font> <a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=as&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">as</a> &#8216;<span style="color:#8b0000;">crm:property/@dsc</span>&#8216;<br />
, property <a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=as&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">as</a> &#8216;<span style="color:#8b0000;">crm:property</span>&#8216;</p>
<p>- properties expressed by CRM object model in form of &#8220;Picklist&#8221; and &#8220;CrmBoolean&#8221; are splitted, on the views, in two columns:</p>
<p>, property<font color="#ff0000">name</font> <a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=as&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">as</a> &#8216;<span style="color:#8b0000;">crm:property/@name</span>&#8216;<br />
, property <a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;siteid=us%2Fdev&amp;p=1&amp;nq=NEW&amp;qu=as&amp;IntlSearch=&amp;boolean=PHRASE&amp;ig=01&amp;i=09&amp;i=99">as</a> &#8216;<span style="color:#8b0000;">crm:property</span>&#8216;</p>
<p>- StatusCode and StateCode are the only further singularity.</p>
<p>Given these rules isn&#8217;t hard to build a class able to generate statements for any entity type. For an hard-core solution, add something able to translate a <strong>QueryExpression</strong> in SQL statements&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sharpreflections.net/2007/04/06/dynamics-crm-as-development-platform-transparent-substitution-of-crmservice-with-filtered-views/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
