<?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>Ian Mercer&#187; SQL</title>
	<atom:link href="http://blog.abodit.com/tag/sql/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.abodit.com</link>
	<description>Living in the World&#039;s Smartest House</description>
	<lastBuildDate>Tue, 07 Sep 2010 19:50:54 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Hybrid Ontology + Relational Store with SQL Server</title>
		<link>http://blog.abodit.com/2010/05/hybrid-ontology-relational-store-with-sql-server/</link>
		<comments>http://blog.abodit.com/2010/05/hybrid-ontology-relational-store-with-sql-server/#comments</comments>
		<pubDate>Tue, 25 May 2010 17:14:38 +0000</pubDate>
		<dc:creator>Ian</dc:creator>
				<category><![CDATA[Semantic Web]]></category>
		<category><![CDATA[Ontology]]></category>
		<category><![CDATA[RDF]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://blog.abodit.com/?p=897</guid>
		<description><![CDATA[There are many references in the literature to exposing existing SQL data sources as RDF. This is certainly one way to integrate existing databases with semantic reasoning tools but it clearly requires a lot more storage and processing than simply keeping the data in SQL and querying over it directly. So recently I began some <a href="http://blog.abodit.com/2010/05/hybrid-ontology-relational-store-with-sql-server/" class="more-link">More &#62;</a>]]></description>
			<content:encoded><![CDATA[<p>There are many references in the literature to exposing existing SQL data sources as RDF.  This is certainly one way to integrate existing databases with semantic reasoning tools but it clearly requires a lot more storage and processing than simply keeping the data in SQL and querying over it directly.  So recently I began some experiments to create a hybrid store by merging an ontology triple (quad) store with an existing database.  By linking each row in other SQL tables to an Entity in the triple store I can take advantage of their existing columns, indexes, relationships etc. whilst also being able to reason over them.  The first part of this is now working, Entities can be derived types stored in separate SQL tables linked only by an Id, and I am now moving on to getting the metadata in place that will provide all of the implied relationships that can be derived from an existing row-structured database into the ontology store &#8211; not as duplicated information but as a service that the reasoner will use to get statements about the SQL content.  Clearly this will require changes in both the reasoner and the store but I think the net effect will be a much more efficient reasoner able to reason over large volumes of structured information quickly without having to first turn everything into a statement triple.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.abodit.com/2010/05/hybrid-ontology-relational-store-with-sql-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SQL Server &#8211; error: 18456, severity: 14, state: 38 &#8211; Incorrect Login</title>
		<link>http://blog.abodit.com/2009/11/sql-server-error-18456-severity-14-state-38-incorrect-login/</link>
		<comments>http://blog.abodit.com/2009/11/sql-server-error-18456-severity-14-state-38-incorrect-login/#comments</comments>
		<pubDate>Mon, 16 Nov 2009 23:57:00 +0000</pubDate>
		<dc:creator>Ian</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://blog.abodit.com/?p=48</guid>
		<description><![CDATA[Despite the error message this problem can be caused by something other than an Authorization failure.  In fact, simply misspelling the Initial Catalog can cause this message to appear.  I wish developers wouldn&#8217;t reuse error messages when the problem and solution is completely different.]]></description>
			<content:encoded><![CDATA[<p>Despite the error message this problem can be caused by something other than an Authorization failure.  In fact, simply misspelling the Initial Catalog can cause this message to appear.  I wish developers wouldn&#8217;t reuse error messages when the problem and solution is completely different.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.abodit.com/2009/11/sql-server-error-18456-severity-14-state-38-incorrect-login/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Generate a SQL Compact Database from your Entity Model (EDMX)</title>
		<link>http://blog.abodit.com/2009/05/generate-a-sql-compact-database-from-your-entity-model-edmx/</link>
		<comments>http://blog.abodit.com/2009/05/generate-a-sql-compact-database-from-your-entity-model-edmx/#comments</comments>
		<pubDate>Mon, 18 May 2009 16:55:00 +0000</pubDate>
		<dc:creator>Ian</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://blog.abodit.com/?p=30</guid>
		<description><![CDATA[I recently switched from SQL Lite to SQL Compact for some of the databases in a system I&#8217;m building. If you are using SQL Compact make sure you have the Hotfix from Microsoft that fixes the Where() clause. The release that shipped as SP1 is utterly useless &#8211; can&#8217;t even do a where clause on <a href="http://blog.abodit.com/2009/05/generate-a-sql-compact-database-from-your-entity-model-edmx/" class="more-link">More &#62;</a>]]></description>
			<content:encoded><![CDATA[<div>I recently switched from SQL Lite to SQL Compact for some of the databases in a system I&#8217;m building.  If you are using SQL Compact make sure you have the <a href="http://support.microsoft.com/hotfix/KBHotfix.aspx?kbnum=958478&amp;kbln=en-us">Hotfix from Microsoft</a> that fixes the Where() clause.  The release that shipped as SP1 is utterly useless &#8211; can&#8217;t even do a where clause on an nvarchar()!  I don&#8217;t know why they didn&#8217;t recall it and replace it with the hotfix version!</div>
<div>Unfortunately SQL Server Management Studio doesn&#8217;t support generating scripts from a SQL Compact database, so if you design your database there you are out of luck when it comes to creating the scripts to auto-generate it when you deploy your code.</div>
<div><a href="http://blogs.msdn.com/stevelasker/archive/2007/03/31/creating-your-sql-server-compact-edition-database-and-schema-in-code.aspx">Steve Lasker&#8217;s Blog</a> has a great article explaing how to embed these scripts as resources but it still doesn&#8217;t solve the issue of how to generate the script in the first place.</div>
<div>There are a few articles that explain how to use T4 to generate stored procedures from the EDMX but I didn&#8217;t see one to generate the actual database itself.  So I built one and you can get it below.</div>
<div>To use this simply create a text file in your project called generate.tt, paste this text in.  It will run and generate another file below itself containing the script to create each table it finds in each EDMX file in your project.</div>
<div><span class="Apple-style-span" style="font-weight: bold;">Limitations:</span> Within the EDMX file there isn&#8217;t enough information to fully create a database.  While the code below can generate foreign keys and primary keys from Associations and Keys defined in your model it has no idea what indexes you might want.  So for now it just generates an index for every field that looks vaguely indexable and it leaves it up to you to delete the ones you don&#8217;t want.</div>
<div>
<div><span class="Apple-style-span" style="font-size: x-small;">&lt;#</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;">//</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;">// Generate SQL Server CE database tables from EDMX definition &#8211; suitable for some simple databases only</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;">// Creates tables, adds primary keys, adds an index for every conceivable field, adds foreign key relationships for all associations</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;">//</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;">#&gt;</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;">&lt;#@ template language=&#8221;C#v3.5&#8243; debug=&#8221;True&#8221; #&gt;</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;">&lt;#@ output extension=&#8221;.sql&#8221; #&gt;</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;">&lt;#@ assembly name=&#8221;System.Core&#8221; #&gt;</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;">&lt;#@ assembly name=&#8221;System.Data&#8221; #&gt;</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;">&lt;#@ assembly name=&#8221;System.Data.Entity&#8221; #&gt;</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;">&lt;#@ assembly name=&#8221;System.Xml&#8221; #&gt;</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;">&lt;#@ assembly name=&#8221;System.Xml.Linq&#8221; #&gt;</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;">&lt;#@ import namespace=&#8221;System.Collections&#8221; #&gt;</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;">&lt;#@ import namespace=&#8221;System.Collections.Generic&#8221; #&gt;</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;">&lt;#@ import namespace=&#8221;System.Data.EntityClient&#8221; #&gt;</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;">&lt;#@ import namespace=&#8221;System.Data.SqlClient&#8221; #&gt;</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;">&lt;#@ import namespace=&#8221;System.Diagnostics&#8221; #&gt;</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;">&lt;#@ import namespace=&#8221;System.IO&#8221; #&gt;</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;">&lt;#@ import namespace=&#8221;System.Linq&#8221; #&gt;</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;">&lt;#@ import namespace=&#8221;System.Text&#8221; #&gt;</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;">&lt;#@ import namespace=&#8221;System.Text.RegularExpressions&#8221; #&gt;</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;">&lt;#@ import namespace=&#8221;System.Xml.Linq&#8221; #&gt;</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;">&lt;#</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;">// This will generate the code to build SQL COMPACT tables for every EDMX in the current directory</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;">// Simply plug that code into SQL Server Management Studio or use it as a resource to build your database</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;"><br />
</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;">// Get the current directory from the stack trace</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;">string stackTraceFileName = new StackTrace(true).GetFrame(0).GetFileName();</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;">string directoryName = Path.GetDirectoryName(stackTraceFileName);</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;"><br />
</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;">#&gt;</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;">&#8211; </span></div>
<div><span class="Apple-style-span" style="font-size: x-small;">&#8211;     This code was generated by a tool.</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;">&#8211;</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;">&#8211;     Changes to this file may cause incorrect behavior and will be lost if</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;">&#8211;     the code is regenerated.</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;">&#8211; </span></div>
<div><span class="Apple-style-span" style="font-size: x-small;">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;"><br />
</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;">&lt;#</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;">string[] entityFrameworkFiles = Directory.GetFiles(directoryName, &#8220;*.edmx&#8221;);</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;"><br />
</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;">foreach (string fileName in entityFrameworkFiles)</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;">{</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;">#&gt;</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;"><br />
</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;">&#8211; Creating TSQL creation script &lt;#= fileName #&gt;.</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;"><br />
</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;">&lt;#</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">DoExtractTables(fileName);</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;">}</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;">#&gt;</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;"><br />
</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;">&lt;#+ </span></div>
<div><span class="Apple-style-span" style="font-size: x-small;">XNamespace edmxns = &#8220;http://schemas.microsoft.com/ado/2007/06/edmx&#8221;;</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;">XNamespace edmns = &#8220;http://schemas.microsoft.com/ado/2006/04/edm&#8221;;</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;">XNamespace ssdlns = &#8220;http://schemas.microsoft.com/ado/2006/04/edm/ssdl&#8221;;</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;"><br />
</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;">private void DoExtractTables(string edmxFilePath)</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;">{</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">XDocument edmxDoc = XDocument.Load(edmxFilePath);</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">XElement edmxElement = edmxDoc.Element(edmxns + &#8220;Edmx&#8221;);</span><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">//  element</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">XElement runtimeElement = edmxElement.Element(edmxns + &#8220;Runtime&#8221;);</span><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">//  element</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">XElement storageModelsElement = runtimeElement.Element(edmxns + &#8220;StorageModels&#8221;);</span><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">//  element</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">XElement ssdlSchemaElement = storageModelsElement.Element(ssdlns + &#8220;Schema&#8221;);</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;"><br />
</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">string entityContainerName = runtimeElement</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">.Element(edmxns + &#8220;ConceptualModels&#8221;)</span><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">//  element</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">.Element(edmns + &#8220;Schema&#8221;)</span><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">//  element</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">.Element(edmns + &#8220;EntityContainer&#8221;)</span><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">//  element</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">.Attribute(&#8220;Name&#8221;).Value;</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">string ssdlNamespace = ssdlSchemaElement.Attribute(&#8220;Namespace&#8221;).Value;</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;"><br />
</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">// Get a list of tables from the SSDL.</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">XElement entityContainerElement = ssdlSchemaElement.Element(ssdlns + &#8220;EntityContainer&#8221;);</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">IEnumerable entitySets = entityContainerElement.Elements(ssdlns + &#8220;EntitySet&#8221;);</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">IEnumerable entityTypes = ssdlSchemaElement.Elements(ssdlns + &#8220;EntityType&#8221;);</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">IEnumerable associations = ssdlSchemaElement.Elements(ssdlns + &#8220;Association&#8221;);</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">string defaultSchema = entityContainerElement.Attribute(&#8220;Name&#8221;).Value;</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;"><br />
</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">foreach (XElement table in entitySets)</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">{</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">string tableName = table.Attribute(&#8220;Name&#8221;).Value;</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span></div>
<div><span class="Apple-style-span" style="font-size: x-small;">#&gt;</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;">DROP Table &lt;#= tableName #&gt;</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;">GO</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;"><br />
</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;">CREATE TABLE &lt;#= tableName #&gt; (</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;">&lt;#+</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;"><br />
</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">XElement entityType = entityTypes.First(et =&gt; et.Attribute(&#8220;Name&#8221;).Value == tableName);</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">IEnumerable properties = entityType.Elements(ssdlns + &#8220;Property&#8221;);</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">int i = 0;</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">int count = properties.Count();</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;"><br />
</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">// GET THE PRIMARY KEY INFORMATION</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">XElement key = entityType.Element(ssdlns + &#8220;Key&#8221;);</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">string pkstr = &#8220;&#8221;;</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">if (key != null)</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">{</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">pkstr = string.Join(&#8220;,&#8221;, key.Elements(ssdlns + &#8220;PropertyRef&#8221;).Select(pk =&gt; pk.Attribute(&#8220;Name&#8221;).Value).ToArray());</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">count++;</span><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">// To add a comma on last field definition</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">}</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span></div>
<div><span class="Apple-style-span" style="font-size: x-small;">//</span><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">// Accumulate a list of indexes to add as we go along examining the properties</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;">//</span><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">List indexesToAdd = new List();</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">foreach (XElement property in properties)</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">{</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">bool last = (i == count-1); </span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">string propertyName = property.Attribute(&#8220;Name&#8221;).Value;</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">string propertyType = property.Attribute(&#8220;Type&#8221;).Value;</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">string nullField = &#8220;&#8221;;</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">if (property.Attribute(&#8220;Nullable&#8221;) != null &amp;&amp; property.Attribute(&#8220;Nullable&#8221;).Value == &#8220;false&#8221;) </span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">nullField = &#8221; NOT NULL&#8221;;</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">string maxLength = &#8220;&#8221;;</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">if (property.Attribute(&#8220;MaxLength&#8221;) != null)</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;"> maxLength = &#8220;(&#8221; + property.Attribute(&#8220;MaxLength&#8221;).Value + &#8220;)&#8221;;</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">string comma = last ? &#8220;&#8221; : &#8220;,&#8221;;</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;">#&gt;</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">&lt;#= propertyName #&gt; &lt;#= propertyType #&gt;&lt;#= maxLength #&gt;&lt;#= nullField #&gt;&lt;#= comma #&gt;</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;">&lt;#+</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">i++;</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">}</span><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">// each property</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;"><br />
</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">// Was their a primary key?  If so, add it</span><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">if (pkstr != &#8220;&#8221;)</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">{</span><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span></div>
<div><span class="Apple-style-span" style="font-size: x-small;">#&gt;</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">CONSTRAINT &lt;#=&#8221;PK_&#8221;+tableName #&gt; PRIMARY KEY ( &lt;#= pkstr #&gt; )</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;">&lt;#+</span><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">}</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;"><br />
</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;">#&gt;</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;">)</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;">GO </span></div>
<div><span class="Apple-style-span" style="font-size: x-small;"><br />
</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;">&lt;#+</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">// Now add all the indexes we might need &#8230; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">foreach (XElement property in properties)</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">{</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">string comment = &#8220;&#8221;;</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">string propertyName = property.Attribute(&#8220;Name&#8221;).Value;</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">if (pkstr.Contains(propertyName)) </span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">{</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">comment = &#8220;already in primary key, no need to index again&#8221;;</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">}</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;"><br />
</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">int maxLength = -1;</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">if (property.Attribute(&#8220;MaxLength&#8221;) != null)</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;"> int.TryParse(property.Attribute(&#8220;MaxLength&#8221;).Value, out maxLength);</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;"><br />
</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">if (maxLength &gt; 256) </span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">{</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">comment = &#8220;too long to meaningfully index&#8221;;</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">}</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">string commentPrefix = comment != &#8220;&#8221; ? &#8220;&#8211; &#8221; : &#8220;&#8221;;</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">// TODO: More rules here about what to index and whether it&#8217;s unique or not &#8230;</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">// </span><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">CREATE [UNIQUE] INDEX &#8230;</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">if (comment != &#8220;&#8221;)</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">{</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;">#&gt;</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">&lt;#=commentPrefix #&gt;&lt;#=comment #&gt;</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;">&lt;#+</span><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">}</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;"><br />
</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;">#&gt;</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">&lt;#=commentPrefix #&gt;CREATE INDEX IX_&lt;#=tableName #&gt;_&lt;#=propertyName #&gt; ON &lt;#=tableName #&gt; (&lt;#=propertyName #&gt;);</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span></div>
<div><span class="Apple-style-span" style="font-size: x-small;">&lt;#+</span><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">}</span><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">// each property</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">}</span><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">// Each table</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">// Now add all the associations between tables &#8230; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">foreach (XElement association in associations)</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">{</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">string associationName = association.Attribute(&#8220;Name&#8221;).Value;</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;"><br />
</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">XElement referentialConstraint = association.Elements(ssdlns + &#8220;ReferentialConstraint&#8221;).First();</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">XElement principalRole = referentialConstraint.Element(ssdlns + &#8220;Principal&#8221;);</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">string thisTable = principalRole.Attribute(&#8220;Role&#8221;).Value;</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">string thisField = principalRole.Element(ssdlns + &#8220;PropertyRef&#8221;).Attribute(&#8220;Name&#8221;).Value;</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">XElement dependentRole = referentialConstraint.Element(ssdlns + &#8220;Dependent&#8221;);</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">string otherTable = dependentRole.Attribute(&#8220;Role&#8221;).Value;</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">string otherField = dependentRole.Element(ssdlns + &#8220;PropertyRef&#8221;).Attribute(&#8220;Name&#8221;).Value;</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;">#&gt;</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;"><br />
</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">ALTER TABLE &lt;#= otherTable #&gt;</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">ADD CONSTRAINT &lt;#= associationName #&gt;</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">FOREIGN KEY (&lt;#= otherField #&gt;)</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">REFERENCES &lt;#= thisTable #&gt; (&lt;#= thisField #&gt;)</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">ON UPDATE CASCADE</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">ON DELETE CASCADE</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">GO</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;"> </span></div>
<div><span class="Apple-style-span" style="font-size: x-small;">&lt;#+</span></div>
<div><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">}</span><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">// Each association</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;">}</span><span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="font-size: x-small;"> </span></span><span class="Apple-style-span" style="font-size: x-small;">// Class</span></div>
<div><span class="Apple-style-span" style="font-size: x-small;">#&gt;</span></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.abodit.com/2009/05/generate-a-sql-compact-database-from-your-entity-model-edmx/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>System.Data.EntitySqlException</title>
		<link>http://blog.abodit.com/2009/05/system-data-entitysqlexception/</link>
		<comments>http://blog.abodit.com/2009/05/system-data-entitysqlexception/#comments</comments>
		<pubDate>Fri, 15 May 2009 03:04:00 +0000</pubDate>
		<dc:creator>Ian</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Entity Framework]]></category>
		<category><![CDATA[Exception]]></category>
		<category><![CDATA[fail]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://blog.abodit.com/?p=29</guid>
		<description><![CDATA[System.Data.EntitySqlException: &#8216;ExceptionRecord&#8217; could not be resolved in the current scope or context. This seemingly small Exception took a while to figure out.  I was calling the ObjectContext constructor without specifying the default container name.  Adding that solved the problem and now the Entity Framework is happily talking to SQL Server Compact again. For anyone else <a href="http://blog.abodit.com/2009/05/system-data-entitysqlexception/" class="more-link">More &#62;</a>]]></description>
			<content:encoded><![CDATA[<div><span class="Apple-style-span" style="border-collapse: collapse;"><span class="Apple-style-span" style="font-weight: bold;"><span class="Apple-style-span" style="font-family: 'trebuchet ms';"><span class="Apple-style-span" style="font-size: large;">System.Data.</span></span></span><span class="Apple-style-span" style="font-weight: bold;"><span class="Apple-style-span" style="font-family: 'trebuchet ms';"><span class="Apple-style-span" style="font-size: large;">EntitySqlException: &#8216;ExceptionRecord&#8217; could not be resolved in the current scope or context.</span></span></span></span><span class="Apple-style-span" style="font-weight: bold;"><span class="Apple-style-span" style="font-family: 'trebuchet ms';"><span class="Apple-style-span" style="font-size: large;"><br />
</span></span></span></div>
<div>This seemingly small Exception took a while to figure out.  I was calling the ObjectContext constructor without specifying the default container name.  Adding that solved the problem and now the Entity Framework is happily talking to SQL Server Compact again.</div>
<div>For anyone else looking for a solution to this, here&#8217;s the stack trace you might see:</div>
<div><span class="Apple-style-span" style="border-collapse: collapse; font-family: arial; font-size: 13px;"></p>
<div>
<div style="text-align: left;"><span class="Apple-style-span" style="font-family: georgia;"><span class="Apple-style-span" style="font-size: x-small;"> </span><span class="Apple-style-span" style="font-family: 'courier new';"><span class="Apple-style-span" style="font-size: 10px;">System.Data.</span></span></span><span class="Apple-style-span" style="font-family: 'courier new';"><span class="Apple-style-span" style="font-size: 10px;">EntitySqlException: &#8216;ExceptionRecord&#8217; could not be resolved in the current scope or context. Make sure that all referenced variables are in scope, that required schemas are loaded, and that namespaces are referenced correctly., near escaped identifier.</span></span></div>
<p><span class="Apple-style-span" style="font-family: 'courier new';"> </span></p>
<div style="text-align: left;"><span class="Apple-style-span" style="font-family: arial;"><span class="Apple-style-span" style="font-family: 'courier new';"><span class="Apple-style-span" style="font-size: 10px;"> at System.Data.Common.EntitySql.</span></span><span class="Apple-style-span" style="font-family: 'courier new';"><span class="Apple-style-span" style="font-size: 10px;">CqlErrorHelper.</span></span><span class="Apple-style-span" style="font-family: 'courier new';"><span class="Apple-style-span" style="font-size: 10px;">ReportIdentifierError(Expr expr, SemanticResolver sr)</span></span></span></div>
<p><span class="Apple-style-span" style="font-family: 'courier new';"> </span></p>
<div style="text-align: left;"><span class="Apple-style-span" style="font-family: arial;"><span class="Apple-style-span" style="font-family: 'courier new';"><span class="Apple-style-span" style="font-size: 10px;"> at System.Data.Common.EntitySql.</span></span><span class="Apple-style-span" style="font-family: 'courier new';"><span class="Apple-style-span" style="font-size: 10px;">SemanticAnalyzer.</span></span><span class="Apple-style-span" style="font-family: 'courier new';"><span class="Apple-style-span" style="font-size: 10px;">ConvertIdentifier(Expr expr, SemanticResolver sr)</span></span></span></div>
<p><span class="Apple-style-span" style="font-family: 'courier new';"> </span></p>
<div style="text-align: left;"><span class="Apple-style-span" style="font-family: arial;"><span class="Apple-style-span" style="font-family: 'courier new';"><span class="Apple-style-span" style="font-size: 10px;"> at System.Data.Common.EntitySql.</span></span><span class="Apple-style-span" style="font-family: 'courier new';"><span class="Apple-style-span" style="font-size: 10px;">SemanticAnalyzer.Convert(Expr astExpr, SemanticResolver sr)</span></span></span></div>
<p><span class="Apple-style-span" style="font-family: 'courier new';"> </span></p>
<div style="text-align: left;"><span class="Apple-style-span" style="font-family: arial;"><span class="Apple-style-span" style="font-family: 'courier new';"><span class="Apple-style-span" style="font-size: 10px;"> at System.Data.Common.EntitySql.</span></span><span class="Apple-style-span" style="font-family: 'courier new';"><span class="Apple-style-span" style="font-size: 10px;">SemanticAnalyzer.</span></span><span class="Apple-style-span" style="font-family: 'courier new';"><span class="Apple-style-span" style="font-size: 10px;">ConvertRootExpression(Expr astExpr, SemanticResolver sr)</span></span></span></div>
<p><span class="Apple-style-span" style="font-family: 'courier new';"> </span></p>
<div style="text-align: left;"><span class="Apple-style-span" style="font-family: arial;"><span class="Apple-style-span" style="font-family: 'courier new';"><span class="Apple-style-span" style="font-size: 10px;"> at System.Data.Common.EntitySql.</span></span><span class="Apple-style-span" style="font-family: 'courier new';"><span class="Apple-style-span" style="font-size: 10px;">SemanticAnalyzer.Analyze(Expr astExpr, DbCommandTree commandTree)</span></span></span></div>
<p><span class="Apple-style-span" style="font-family: 'courier new';"> </span></p>
<div style="text-align: left;"><span class="Apple-style-span" style="font-family: arial;"><span class="Apple-style-span" style="font-family: 'courier new';"><span class="Apple-style-span" style="font-size: 10px;"> at System.Data.Common.EntitySql.</span></span><span class="Apple-style-span" style="font-family: 'courier new';"><span class="Apple-style-span" style="font-size: 10px;">CqlQuery.AnalyzeSemantics(</span></span><span class="Apple-style-span" style="font-family: 'courier new';"><span class="Apple-style-span" style="font-size: 10px;">DbCommandTree builderTree, Expr astExpr, Perspective perspective, ParserOptions parserOptions, Dictionary`2 parameters, Dictionary`2 variables)</span></span></span></div>
<p><span class="Apple-style-span" style="font-family: 'courier new';"> </span></p>
<div style="text-align: left;"><span class="Apple-style-span" style="font-family: arial;"><span class="Apple-style-span" style="font-family: 'courier new';"><span class="Apple-style-span" style="font-size: 10px;"> at System.Data.Common.EntitySql.</span></span><span class="Apple-style-span" style="font-family: 'courier new';"><span class="Apple-style-span" style="font-size: 10px;">CqlQuery.Compile(DbCommandTree builderTree, String queryText, Perspective perspective, ParserOptions parserOptions, Dictionary`2 parameters, Dictionary`2 variables)</span></span></span></div>
<p><span class="Apple-style-span" style="font-family: 'courier new';"> </span></p>
<div style="text-align: left;"><span class="Apple-style-span" style="font-family: arial;"><span class="Apple-style-span" style="font-family: 'courier new';"><span class="Apple-style-span" style="font-size: 10px;"> at System.Data.Objects.</span></span><span class="Apple-style-span" style="font-family: 'courier new';"><span class="Apple-style-span" style="font-size: 10px;">EntitySqlQueryState.Parse(</span></span><span class="Apple-style-span" style="font-family: 'courier new';"><span class="Apple-style-span" style="font-size: 10px;">DbCommandTree parseTree)</span></span></span></div>
<p><span class="Apple-style-span" style="font-family: 'courier new';"> </span></p>
<div style="text-align: left;"><span class="Apple-style-span" style="font-family: arial;"><span class="Apple-style-span" style="font-family: 'courier new';"><span class="Apple-style-span" style="font-size: 10px;"> at System.Data.Objects.</span></span><span class="Apple-style-span" style="font-family: 'courier new';"><span class="Apple-style-span" style="font-size: 10px;">EntitySqlQueryState.</span></span><span class="Apple-style-span" style="font-family: 'courier new';"><span class="Apple-style-span" style="font-size: 10px;">GetExecutionPlan(Nullable`1 forMergeOption)</span></span></span></div>
<p><span class="Apple-style-span" style="font-family: 'courier new';"> </span></p>
<div style="text-align: left;"><span class="Apple-style-span" style="font-family: arial;"><span class="Apple-style-span" style="font-family: 'courier new';"><span class="Apple-style-span" style="font-size: 10px;"> at System.Data.Objects.</span></span><span class="Apple-style-span" style="font-family: 'courier new';"><span class="Apple-style-span" style="font-size: 10px;">ObjectQuery`1.GetResults(</span></span><span class="Apple-style-span" style="font-family: 'courier new';"><span class="Apple-style-span" style="font-size: 10px;">Nullable`1 forMergeOption)</span></span></span></div>
<p><span class="Apple-style-span" style="font-family: 'courier new';"> </span></p>
<div style="text-align: left;"><span class="Apple-style-span" style="font-family: arial;"><span class="Apple-style-span" style="font-family: 'courier new';"><span class="Apple-style-span" style="font-size: 10px;"> at System.Data.Objects.</span></span><span class="Apple-style-span" style="font-family: 'courier new';"><span class="Apple-style-span" style="font-size: 10px;">ObjectQuery`1.System.</span></span><span class="Apple-style-span" style="font-family: 'courier new';"><span class="Apple-style-span" style="font-size: 10px;">Collections.Generic.</span></span><span class="Apple-style-span" style="font-family: 'courier new';"><span class="Apple-style-span" style="font-size: 10px;">IEnumerable</span></span><span class="Apple-style-span" style="font-family: 'courier new';"><span class="Apple-style-span" style="font-size: 10px;">.GetEnumerator()</span></span></span></div>
<ul>
<li></li>
</ul>
</div>
<p></span></div>
]]></content:encoded>
			<wfw:commentRss>http://blog.abodit.com/2009/05/system-data-entitysqlexception/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
