<?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>Woody&#039;s Data Experiences &#187; Blog</title>
	<atom:link href="http://chriswoodruff.com/category/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://chriswoodruff.com</link>
	<description></description>
	<lastBuildDate>Mon, 14 May 2012 14:07:25 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<item>
		<title>31 Days Of OData &#8211; Day 5 Addressing Entities In OData</title>
		<link>http://chriswoodruff.com/2011/12/12/31-days-of-odata-day-5-addressing-entities-in-odata/</link>
		<comments>http://chriswoodruff.com/2011/12/12/31-days-of-odata-day-5-addressing-entities-in-odata/#comments</comments>
		<pubDate>Mon, 12 Dec 2011 14:48:30 +0000</pubDate>
		<dc:creator>cwoodruff</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[31 Days]]></category>
		<category><![CDATA[OData]]></category>

		<guid isPermaLink="false">http://chriswoodruff.com/?p=464</guid>
		<description><![CDATA[Before we can learn about Addressing Entities in OData, we have to lay the ground work for all OData commanding including queries. We will first detail and demonstrate the Uniform Resource Identifier or URI and then look at a URI for OData. What is a URI? An URI is a string that is used to]]></description>
			<content:encoded><![CDATA[<p><a href="http://chriswoodruff.com/wp-content/uploads/2012/02/OData-logo_bigger4.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 5px 0px 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top: 0px; border-right: 0px; padding-top: 0px" title="OData-logo_bigger4" border="0" alt="OData-logo_bigger4" align="left" src="http://chriswoodruff.com/wp-content/uploads/2012/02/OData-logo_bigger4_thumb.png" width="73" height="73" /></a>Before we can learn about Addressing Entities in OData, we have to lay the ground work for all OData commanding including queries. We will first detail and demonstrate the <strong>Uniform Resource Identifier</strong> or <strong>URI</strong> and then look at a URI for OData.</p>
<h2>What is a URI?</h2>
<p>An URI is a string that is used to identify a name(URN) or a location to a resource( URL). The URN works like a name of a person or a business name where the URL functions like the physical address of a person or business.</p>
<p>The following are two examples of URI&#8217;s</p>
<p><span style="font-family: lucida console; font-size: 9pt">http://services.odata.org/OData/OData.svc</span></p>
<p><span style="font-family: lucida console; font-size: 9pt">http://services.odata.org/OData/OData.svc/Categories(1)/Products?$top=2&amp;$orderby=Name     <br /></span></p>
<p>As you can see the two URI&#8217;s are both OData URI&#8217;s. The first is called the Service Root URI and the second is an OData query URI that us requesting the first two Products that are associated to Category 1 returned in alphabetical order.</p>
<p><img alt="" src="http://chriswoodruff.com/wp-content/uploads/2011/12/121211_1448_31DAYSOFODA1.png" /></p>
<h2>Service Root URI</h2>
<p>Every OData call must include the Service Root URI to interact with an OData feed. Think of the Service Root URI as the location of the OData feed. It represents the HTTP listener that will do the work on the behalf of the consumer of the OData feed based on the URI past the root and the HTTP Verb or Command sent.</p>
<p><img alt="" src="http://chriswoodruff.com/wp-content/uploads/2011/12/121211_1448_31DAYSOFODA2.png" /></p>
<p>You may discover that some OData Service Root URI&#8217;s do not end with svc. This can be accomplished with routing the request as shown in Ron Jacob&#8217;s blob post <a href="http://blogs.msdn.com/b/rjacobs/archive/2010/04/05/using-system-web-routing-with-data-services-odata.aspx">here</a>.</p>
<h2>Resource Path of the OData URI</h2>
<p>The Resource Path of OData request URI functions as the resource locator from the OData consumer. It can be a request to any of the following resources of the OData protocol:</p>
<ul>
<li>Single Entity (Baseball Player) </li>
<li>Collection of Entities (Baseball Players from a team and year) </li>
<li>Entity relationship between multiple Entities (Batting Statistics for a specific Baseball Player) </li>
<li>A Property of an Entity (Last Name of a Baseball Player) </li>
<li>Service Operation </li>
<li>Other resources </li>
</ul>
<p><img alt="" src="http://chriswoodruff.com/wp-content/uploads/2011/12/121211_1448_31DAYSOFODA3.png" /></p>
<h2>Query Options of the OData URI</h2>
<p>We will work through many of the Query options during this blog series. Know that all Query Options in OData request URI&#8217;s specify three types of information:</p>
<ul>
<li>System Query Options – we will explore this type in detail during this series. </li>
<li>Custom Query Options – extension point for server specific information. The Custom Query Option is always passed as a name/value pair. </li>
<li>Service Operation Parameters – used to reference a call Service Operations that reside on the OData feed. </li>
</ul>
<p><img alt="" src="http://chriswoodruff.com/wp-content/uploads/2011/12/121211_1448_31DAYSOFODA4.png" /></p>
<h2>Querying Entities</h2>
<p>Addressing single or collections of entities located in an OData feed is akin to the FROM clause of a SQL SELECT statement along with JOINs. By allowing associations between Entities an OData request URI can reach far and wide inside the OData feed to request any shape and collection of data.</p>
<p>The following grammar are the rules that cover all entity query scenarios: single Entity, collection of Entities or single Property of Entity.</p>
<p><img alt="" src="http://chriswoodruff.com/wp-content/uploads/2011/12/121211_1448_31DAYSOFODA5.png" /></p>
<p>The areas of the OData request</p>
<table style="border-collapse: collapse" border="0">
<colgroup>
<col style="width: 148px" />
<col style="width: 490px" /></colgroup>
<tbody valign="top">
<tr style="background: black">
<td style="border-bottom: #404040 1pt solid; border-left: #404040 1pt solid; padding-left: 7px; padding-right: 7px; border-right-style: none; border-top: #404040 1pt solid">&nbsp;</td>
<td style="border-bottom: #404040 1pt solid; border-left-style: none; padding-left: 7px; padding-right: 7px; border-top: #404040 1pt solid; border-right: #404040 1pt solid"><span style="color: white"><strong>Details</strong></span></td>
</tr>
<tr style="background: silver">
<td style="border-bottom: #404040 1pt solid; border-left: #404040 1pt solid; padding-left: 7px; padding-right: 7px; border-top-style: none; border-right-style: none"><strong>Collection</strong></td>
<td style="border-bottom: #404040 1pt solid; border-left-style: none; padding-left: 7px; padding-right: 7px; border-top-style: none; border-right: #404040 1pt solid">The Collection will cover either a requested Collection of Entities or from a Service Collection which returns a Collection of Entities.</td>
</tr>
<tr>
<td style="border-bottom: #404040 1pt solid; border-left: #404040 1pt solid; padding-left: 7px; padding-right: 7px; border-top-style: none; border-right-style: none"><strong>KeyPredicate</strong></td>
<td style="border-bottom: #404040 1pt solid; border-left-style: none; padding-left: 7px; padding-right: 7px; border-top-style: none; border-right: #404040 1pt solid">A predicate that identifies the value(s) of the key Properties of an Entry. If the Entry has a single key Property the predicate may include only the value of the key Property. If the key is made up of two or more Properties, then its value must be stated using name/value pairs. More precisely, the syntax for a KeyPredicate is shown by the following figure.<img alt="" src="http://chriswoodruff.com/wp-content/uploads/2011/12/121211_1448_31DAYSOFODA6.png" /></td>
</tr>
<tr style="background: silver">
<td style="border-bottom: #404040 1pt solid; border-left: #404040 1pt solid; padding-left: 7px; padding-right: 7px; border-top-style: none; border-right-style: none"><strong>NavPropSingle</strong></td>
<td style="border-bottom: #404040 1pt solid; border-left-style: none; padding-left: 7px; padding-right: 7px; border-top-style: none; border-right: #404040 1pt solid">The name of a Navigation Property defined by the Entry associated with the prior path segment. The Navigation Property must identify a single entity (that is, have a &quot;to 1&quot; relationship).</td>
</tr>
<tr>
<td style="border-bottom: #404040 1pt solid; border-left: #404040 1pt solid; padding-left: 7px; padding-right: 7px; border-top-style: none; border-right-style: none"><strong>NavPropCollection</strong></td>
<td style="border-bottom: #404040 1pt solid; border-left-style: none; padding-left: 7px; padding-right: 7px; border-top-style: none; border-right: #404040 1pt solid">Same as NavPropSingle except it must identify a Collection of Entries (that is, have a &quot;to many&quot; relationship).</td>
</tr>
<tr style="background: silver">
<td style="border-bottom: #404040 1pt solid; border-left: #404040 1pt solid; padding-left: 7px; padding-right: 7px; border-top-style: none; border-right-style: none"><strong>ComplexType</strong></td>
<td style="border-bottom: #404040 1pt solid; border-left-style: none; padding-left: 7px; padding-right: 7px; border-top-style: none; border-right: #404040 1pt solid">The name of a declared or dynamic Property of the Entry or Complex Type associated with the prior path segment.</td>
</tr>
<tr>
<td style="border-bottom: #404040 1pt solid; border-left: #404040 1pt solid; padding-left: 7px; padding-right: 7px; border-top-style: none; border-right-style: none"><strong>Property</strong></td>
<td style="border-bottom: #404040 1pt solid; border-left-style: none; padding-left: 7px; padding-right: 7px; border-top-style: none; border-right: #404040 1pt solid">The name of a declared or dynamic Property of the Entry or Complex Type associated with the prior path segment.</td>
</tr>
</tbody>
</table>
<p>We will be looking at many ways to query and shape the data returned from an OData feed in future blog posts. Stay tuned and hope you are enjoying the series. I am working to catch up also.</p>
]]></content:encoded>
			<wfw:commentRss>http://chriswoodruff.com/2011/12/12/31-days-of-odata-day-5-addressing-entities-in-odata/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>31 Days of OData &#8211; Day 4 Metadata in OData</title>
		<link>http://chriswoodruff.com/2011/12/09/31-days-of-odata-day-4-metadata-in-odata/</link>
		<comments>http://chriswoodruff.com/2011/12/09/31-days-of-odata-day-4-metadata-in-odata/#comments</comments>
		<pubDate>Fri, 09 Dec 2011 19:10:49 +0000</pubDate>
		<dc:creator>cwoodruff</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[31 Days]]></category>
		<category><![CDATA[OData]]></category>

		<guid isPermaLink="false">http://chriswoodruff.com/2011/12/09/31-days-of-odata-day-4-metadata-in-odata/</guid>
		<description><![CDATA[Let’s go back 15 years ago when I started professionally developing software and using relational databases. The relational database was a great tool to deal with data. No more did we have to use flat files to store our data with tools named Paradox, dBase and other such data management systems. We now had more]]></description>
			<content:encoded><![CDATA[<h3><span style="font-weight: normal; font-size: small;"><a href="http://chriswoodruff.com/wp-content/uploads/2011/12/OData-logo_bigger4.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; float: left; padding-top: 0px; border-width: 0px;" title="OData-logo_bigger" src="http://chriswoodruff.com/wp-content/uploads/2011/12/OData-logo_bigger_thumb4.png" alt="OData-logo_bigger" width="73" height="73" align="left" border="0" /></a>Let’s go back 15 years ago when I started professionally developing software and using relational databases. The relational database was a great tool to deal with data. No more did we have to use flat files to store our data with tools named Paradox, dBase and other such data management systems. We now had more flexibility to build our solutions and the new architecture pattern Client-Server that was the rage for all developers circa 1996.</span></h3>
<p>Relational databases gave us the SQL language and that in turn allowed the developers of the day to quickly create, read, update and delete (CRUD) data that was stored on the server and build our applications at the client. Life was great (for me at least) because I knew nothing different. If I wanted to learn about a new database, I would get the schema either in a text file that had a set of CREATE SQL calls for all the objects that made up the database. If we were really lucky we received a printed graph of the database that gave the developers a nice graphical layout of the data tables and views with the relationships between the tables and views. It took time to understand the meaning of the database but that is what we did.</p>
<p>In 2007 I experienced a glimpse into the future that shook my world. It was when I started experimenting with a new incubation project from Microsoft called Astoria. I saw it at first as way to get data across HTTP and that excited me. What blew my mind after really learning about it was Metadata. Compared to the time I spent discovering the meaning and shape of the data schema of a relational database that a DBA created and handed to me, Metadata was the bridge into a new frontier.</p>
<p>Let’s step back and take a look at what Metadata is and how it works within OData. Metadata is defined broadly as “Data about Data”. Think of metadata as the Dewey Decimal we learned as kids when we visited the library. The card catalog does not carry the information about the content inside the books but it does describe the books and information that the books contain in a broad level to allow readers to find and locate the books they are interested in on the shelves. Metadata does the same for us as users of the data that the OData feeds allow us to consume.</p>
<p>In OData, the <strong>Service Metadata Document</strong> allows the consumers of the data provided by the OData feed to understand the Entity Data Model (<a href="http://chriswoodruff.com/2011/12/04/31-days-of-odata-day-3-odata-entity-data-model-2/">Day 3 of the series</a>). The Service Metadata Document does not carry any details of the data held within the data repository of the OData feed. It contains the roadmap to the data. In the SOAP world the Service Metadata Document would be the equivalent of the WSDL file. Let’s look at the structure of the Service Metadata Document (in XML) and walk through its map. We will use the Baseball Statistics OData feed found <a href="http://baseball-stats.info/OData/baseballstats.svc">here</a> as our example.</p>
<p>We first need to query the Service Metadata Document from the OData feed. How this is accomplished is my using the $metadata query option at the base of the OData feed as shown below:</p>
<p><a href="http://baseball-stats.info/OData/baseballstats.svc/$metadata">http://baseball-stats.info/OData/baseballstats.svc/$metadata</a></p>
<p>The Service Metadata Document is returned in the payload after the $metadata query and has three parts: the EDMX which is made up of the OData Model and also the Entity Collection.</p>
<div id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:4e4ac636-127f-4c88-9ee9-c68b88aff610" class="wlWriterEditableSmartContent" style="margin: 0px; display: inline; float: none; padding: 0px;">
<div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt;">
<div style="background: #000080; color: #fff; font-family: Verdana, Tahoma, Arial, sans-serif; font-weight: bold; padding: 2px 5px;">Code Snippet</div>
<div style="background: #ddd; max-height: 300px; overflow: auto;">
<ol style="background: #ffffff; margin: 0 0 0 3em; padding: 0 0 0 5px;" start="1">
<li style="background: #f3f3f3;"><span style="color: #0000ff;">&lt;?</span><span style="color: #a31515;">xml</span><span style="color: #ff0000;">version</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">1.0</span>&#8220;<span style="color: #ff0000;">encoding</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">UTF8</span>&#8220;<span style="color: #ff0000;">standalone</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">true</span>&#8220;<span style="color: #0000ff;">?&gt;</span></li>
<li><span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">edmx:Edmx</span><span style="color: #ff0000;">xmlns:edmx</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">http://schemas.microsoft.com/ado/2007/06/edmx</span>&#8220;<span style="color: #ff0000;">Version</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">1.0</span>&#8220;<span style="color: #0000ff;">&gt;</span></li>
<li style="background: #f3f3f3;">    <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">edmx:DataServices</span><span style="color: #ff0000;">m:DataServiceVersion</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">1.0</span>&#8220;<span style="color: #ff0000;">xmlns:m</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">http://schemas.microsoft.com/ado/2007/08/dataservices/metadata</span>&#8220;<span style="color: #0000ff;">&gt;</span></li>
<li>        <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">Schema</span><span style="color: #ff0000;">xmlns</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">http://schemas.microsoft.com/ado/2008/09/edm</span>&#8220;<span style="color: #ff0000;">xmlns:d</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">http://schemas.microsoft.com/ado/2007/08/dataservices</span>&#8220;<span style="color: #ff0000;">xmlns:m</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">http://schemas.microsoft.com/ado/2007/08/dataservices/metadata</span>&#8220;<span style="color: #ff0000;">Namespace</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">BaseballStatsModel</span>&#8220;<span style="color: #0000ff;">&gt;</span></li>
<li style="background: #f3f3f3;">            <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">EntityType</span><span style="color: #ff0000;">Name</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">Allstar</span>&#8220;<span style="color: #0000ff;">&gt;</span></li>
<li>                <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">Key</span><span style="color: #0000ff;">&gt;</span></li>
<li style="background: #f3f3f3;">                    <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">PropertyRef</span><span style="color: #ff0000;">Name</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">playerID</span>&#8220;<span style="color: #0000ff;">/&gt;</span></li>
<li>                    <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">PropertyRef</span><span style="color: #ff0000;">Name</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">yearID</span>&#8220;<span style="color: #0000ff;">/&gt;</span></li>
<li style="background: #f3f3f3;">                    <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">PropertyRef</span><span style="color: #ff0000;">Name</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">lgID</span>&#8220;<span style="color: #0000ff;">/&gt;</span></li>
<li>                <span style="color: #0000ff;">&lt;/</span><span style="color: #a31515;">Key</span><span style="color: #0000ff;">&gt;</span></li>
<li style="background: #f3f3f3;">                <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">Property</span><span style="color: #ff0000;">Name</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">playerID</span>&#8220;<span style="color: #ff0000;">FixedLength</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">false</span>&#8220;<span style="color: #ff0000;">Unicode</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">true</span>&#8220;<span style="color: #ff0000;">MaxLength</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">10</span>&#8220;<span style="color: #ff0000;">Nullable</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">false</span>&#8220;<span style="color: #ff0000;">Type</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">Edm.String</span>&#8220;<span style="color: #0000ff;">/&gt;</span></li>
<li>                <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">Property</span><span style="color: #ff0000;">Name</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">yearID</span>&#8220;<span style="color: #ff0000;">Nullable</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">false</span>&#8220;<span style="color: #ff0000;">Type</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">Edm.Int16</span>&#8220;<span style="color: #0000ff;">/&gt; &lt;</span><span style="color: #a31515;">Property</span><span style="color: #ff0000;">Name</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">lgID</span>&#8220;<span style="color: #ff0000;">FixedLength</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">false</span>&#8220;<span style="color: #ff0000;">Unicode</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">true</span>&#8220;<span style="color: #ff0000;">MaxLength</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">2</span>&#8220;<span style="color: #ff0000;">Nullable</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">false</span>&#8220;<span style="color: #ff0000;">Type</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">Edm.String</span>&#8220;<span style="color: #0000ff;">/&gt;</span></li>
<li style="background: #f3f3f3;">                <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">NavigationProperty</span><span style="color: #ff0000;">Name</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">Player</span>&#8220;<span style="color: #ff0000;">ToRole</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">Player</span>&#8220;<span style="color: #ff0000;">FromRole</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">Allstar</span>&#8220;<span style="color: #ff0000;">Relationship</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">BaseballStatsModel.FK_Allstar_Player</span>&#8220;<span style="color: #0000ff;">/&gt;</span></li>
<li>            <span style="color: #0000ff;">&lt;/</span><span style="color: #a31515;">EntityType</span><span style="color: #0000ff;">&gt;</span></li>
<li style="background: #f3f3f3;">            <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">EntityType</span><span style="color: #ff0000;">Name</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">AllstarFull</span>&#8220;<span style="color: #0000ff;">&gt;</span></li>
<li>                <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">Key</span><span style="color: #0000ff;">&gt;</span></li>
<li style="background: #f3f3f3;">                    <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">PropertyRef</span><span style="color: #ff0000;">Name</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">playerID</span>&#8220;<span style="color: #0000ff;">/&gt;</span></li>
<li>                    <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">PropertyRef</span><span style="color: #ff0000;">Name</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">yearID</span>&#8220;<span style="color: #0000ff;">/&gt;</span></li>
<li style="background: #f3f3f3;">                    <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">PropertyRef</span><span style="color: #ff0000;">Name</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">gameNum</span>&#8220;<span style="color: #0000ff;">/&gt;</span></li>
<li>                <span style="color: #0000ff;">&lt;/</span><span style="color: #a31515;">Key</span><span style="color: #0000ff;">&gt; </span></li>
<li style="background: #f3f3f3;">                <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">Property</span><span style="color: #ff0000;">Name</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">playerID</span>&#8220;<span style="color: #ff0000;">FixedLength</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">false</span>&#8220;<span style="color: #ff0000;">Unicode</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">true</span>&#8220;<span style="color: #ff0000;">MaxLength</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">10</span>&#8220;<span style="color: #ff0000;">Nullable</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">false</span>&#8220;<span style="color: #ff0000;">Type</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">Edm.String</span>&#8220;<span style="color: #0000ff;">/&gt; </span></li>
<li>                <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">Property</span><span style="color: #ff0000;">Name</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">yearID</span>&#8220;<span style="color: #ff0000;">Nullable</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">false</span>&#8220;<span style="color: #ff0000;">Type</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">Edm.Int16</span>&#8220;<span style="color: #0000ff;">/&gt; &lt;</span><span style="color: #a31515;">Property</span><span style="color: #ff0000;">Name</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">gameNum</span>&#8220;<span style="color: #ff0000;">Nullable</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">false</span>&#8220;<span style="color: #ff0000;">Type</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">Edm.Int16</span>&#8220;<span style="color: #0000ff;">/&gt; </span></li>
<li style="background: #f3f3f3;">                <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">Property</span><span style="color: #ff0000;">Name</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">gameID</span>&#8220;<span style="color: #ff0000;">FixedLength</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">false</span>&#8220;<span style="color: #ff0000;">Unicode</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">true</span>&#8220;<span style="color: #ff0000;">MaxLength</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">12</span>&#8220;<span style="color: #ff0000;">Nullable</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">true</span>&#8220;<span style="color: #ff0000;">Type</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">Edm.String</span>&#8220;<span style="color: #0000ff;">/&gt; </span></li>
<li>                <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">Property</span><span style="color: #ff0000;">Name</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">teamID</span>&#8220;<span style="color: #ff0000;">FixedLength</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">false</span>&#8220;<span style="color: #ff0000;">Unicode</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">true</span>&#8220;<span style="color: #ff0000;">MaxLength</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">3</span>&#8220;<span style="color: #ff0000;">Nullable</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">true</span>&#8220;<span style="color: #ff0000;">Type</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">Edm.String</span>&#8220;<span style="color: #0000ff;">/&gt; </span></li>
<li style="background: #f3f3f3;">                <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">Property</span><span style="color: #ff0000;">Name</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">lgID</span>&#8220;<span style="color: #ff0000;">FixedLength</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">false</span>&#8220;<span style="color: #ff0000;">Unicode</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">true</span>&#8220;<span style="color: #ff0000;">MaxLength</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">2</span>&#8220;<span style="color: #ff0000;">Nullable</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">true</span>&#8220;<span style="color: #ff0000;">Type</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">Edm.String</span>&#8220;<span style="color: #0000ff;">/&gt; </span></li>
<li>                <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">Property</span><span style="color: #ff0000;">Name</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">GP</span>&#8220;<span style="color: #ff0000;">Nullable</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">true</span>&#8220;<span style="color: #ff0000;">Type</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">Edm.Int16</span>&#8220;<span style="color: #0000ff;">/&gt; &lt;</span><span style="color: #a31515;">Property</span><span style="color: #ff0000;">Name</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">startingPos</span>&#8220;<span style="color: #ff0000;">Nullable</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">true</span>&#8220;<span style="color: #ff0000;">Type</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">Edm.Int16</span>&#8220;<span style="color: #0000ff;">/&gt; </span></li>
<li style="background: #f3f3f3;">                <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">NavigationProperty</span><span style="color: #ff0000;">Name</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">Player</span>&#8220;<span style="color: #ff0000;">ToRole</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">Player</span>&#8220;<span style="color: #ff0000;">FromRole</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">AllstarFull</span>&#8220;<span style="color: #ff0000;">Relationship</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">BaseballStatsModel.FK_AllstarFull_Player</span>&#8220;<span style="color: #0000ff;">/&gt;</span></li>
<li>            <span style="color: #0000ff;">&lt;/</span><span style="color: #a31515;">EntityType</span><span style="color: #0000ff;">&gt;</span></li>
<li>            &#8230;</li>
<li>            <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">EntityType</span><span style="color: #ff0000;">Name</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">PitchingTotals</span>&#8220;<span style="color: #0000ff;">&gt;</span></li>
<li style="background: #f3f3f3;">                <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">Key</span><span style="color: #0000ff;">&gt;</span></li>
<li>                    <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">PropertyRef</span><span style="color: #ff0000;">Name</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">playerID</span>&#8220;<span style="color: #0000ff;">/&gt;</span></li>
<li style="background: #f3f3f3;">                <span style="color: #0000ff;">&lt;/</span><span style="color: #a31515;">Key</span><span style="color: #0000ff;">&gt; </span></li>
<li>                <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">Property</span><span style="color: #ff0000;">Name</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">playerID</span>&#8220;<span style="color: #ff0000;">FixedLength</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">false</span>&#8220;<span style="color: #ff0000;">Unicode</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">true</span>&#8220;<span style="color: #ff0000;">MaxLength</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">10</span>&#8220;<span style="color: #ff0000;">Nullable</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">false</span>&#8220;<span style="color: #ff0000;">Type</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">Edm.String</span>&#8220;<span style="color: #0000ff;">/&gt; </span></li>
<li style="background: #f3f3f3;">                <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">Property</span><span style="color: #ff0000;">Name</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">W</span>&#8220;<span style="color: #ff0000;">Nullable</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">true</span>&#8220;<span style="color: #ff0000;">Type</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">Edm.Int32</span>&#8220;<span style="color: #0000ff;">/&gt; &lt;</span><span style="color: #a31515;">Property</span><span style="color: #ff0000;">Name</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">L</span>&#8220;<span style="color: #ff0000;">Nullable</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">true</span>&#8220;<span style="color: #ff0000;">Type</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">Edm.Int32</span>&#8220;<span style="color: #0000ff;">/&gt; </span></li>
<li>                <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">Property</span><span style="color: #ff0000;">Name</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">G</span>&#8220;<span style="color: #ff0000;">Nullable</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">true</span>&#8220;<span style="color: #ff0000;">Type</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">Edm.Int32</span>&#8220;<span style="color: #0000ff;">/&gt; &lt;</span><span style="color: #a31515;">Property</span><span style="color: #ff0000;">Name</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">GS</span>&#8220;<span style="color: #ff0000;">Nullable</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">true</span>&#8220;<span style="color: #ff0000;">Type</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">Edm.Int32</span>&#8220;<span style="color: #0000ff;">/&gt; </span></li>
<li style="background: #f3f3f3;">                <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">Property</span><span style="color: #ff0000;">Name</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">CG</span>&#8220;<span style="color: #ff0000;">Nullable</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">true</span>&#8220;<span style="color: #ff0000;">Type</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">Edm.Int32</span>&#8220;<span style="color: #0000ff;">/&gt; &lt;</span><span style="color: #a31515;">Property</span><span style="color: #ff0000;">Name</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">SHO</span>&#8220;<span style="color: #ff0000;">Nullable</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">true</span>&#8220;<span style="color: #ff0000;">Type</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">Edm.Int32</span>&#8220;<span style="color: #0000ff;">/&gt; </span></li>
<li>                <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">Property</span><span style="color: #ff0000;">Name</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">SV</span>&#8220;<span style="color: #ff0000;">Nullable</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">true</span>&#8220;<span style="color: #ff0000;">Type</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">Edm.Int32</span>&#8220;<span style="color: #0000ff;">/&gt; &lt;</span><span style="color: #a31515;">Property</span><span style="color: #ff0000;">Name</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">IPouts</span>&#8220;<span style="color: #ff0000;">Nullable</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">true</span>&#8220;<span style="color: #ff0000;">Type</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">Edm.Int32</span>&#8220;<span style="color: #0000ff;">/&gt; </span></li>
<li style="background: #f3f3f3;">                <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">Property</span><span style="color: #ff0000;">Name</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">H</span>&#8220;<span style="color: #ff0000;">Nullable</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">true</span>&#8220;<span style="color: #ff0000;">Type</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">Edm.Int32</span>&#8220;<span style="color: #0000ff;">/&gt; &lt;</span><span style="color: #a31515;">Property</span><span style="color: #ff0000;">Name</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">ER</span>&#8220;<span style="color: #ff0000;">Nullable</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">true</span>&#8220;<span style="color: #ff0000;">Type</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">Edm.Int32</span>&#8220;<span style="color: #0000ff;">/&gt; </span></li>
<li>                <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">Property</span><span style="color: #ff0000;">Name</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">HR</span>&#8220;<span style="color: #ff0000;">Nullable</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">true</span>&#8220;<span style="color: #ff0000;">Type</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">Edm.Int32</span>&#8220;<span style="color: #0000ff;">/&gt; &lt;</span><span style="color: #a31515;">Property</span><span style="color: #ff0000;">Name</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">BB</span>&#8220;<span style="color: #ff0000;">Nullable</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">true</span>&#8220;<span style="color: #ff0000;">Type</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">Edm.Int32</span>&#8220;<span style="color: #0000ff;">/&gt; </span></li>
<li style="background: #f3f3f3;">                <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">Property</span><span style="color: #ff0000;">Name</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">SO</span>&#8220;<span style="color: #ff0000;">Nullable</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">true</span>&#8220;<span style="color: #ff0000;">Type</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">Edm.Int32</span>&#8220;<span style="color: #0000ff;">/&gt; &lt;</span><span style="color: #a31515;">Property</span><span style="color: #ff0000;">Name</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">BAOpp</span>&#8220;<span style="color: #ff0000;">Nullable</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">true</span>&#8220;<span style="color: #ff0000;">Type</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">Edm.Double</span>&#8220;<span style="color: #0000ff;">/&gt; </span></li>
<li>                <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">Property</span><span style="color: #ff0000;">Name</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">IBB</span>&#8220;<span style="color: #ff0000;">Nullable</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">true</span>&#8220;<span style="color: #ff0000;">Type</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">Edm.Int32</span>&#8220;<span style="color: #0000ff;">/&gt; &lt;</span><span style="color: #a31515;">Property</span><span style="color: #ff0000;">Name</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">WP</span>&#8220;<span style="color: #ff0000;">Nullable</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">true</span>&#8220;<span style="color: #ff0000;">Type</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">Edm.Int32</span>&#8220;<span style="color: #0000ff;">/&gt; </span></li>
<li style="background: #f3f3f3;">                <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">Property</span><span style="color: #ff0000;">Name</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">HBP</span>&#8220;<span style="color: #ff0000;">Nullable</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">true</span>&#8220;<span style="color: #ff0000;">Type</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">Edm.Int32</span>&#8220;<span style="color: #0000ff;">/&gt; &lt;</span><span style="color: #a31515;">Property</span><span style="color: #ff0000;">Name</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">BK</span>&#8220;<span style="color: #ff0000;">Nullable</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">true</span>&#8220;<span style="color: #ff0000;">Type</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">Edm.Int32</span>&#8220;<span style="color: #0000ff;">/&gt; </span></li>
<li>                <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">Property</span><span style="color: #ff0000;">Name</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">BFP</span>&#8220;<span style="color: #ff0000;">Nullable</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">true</span>&#8220;<span style="color: #ff0000;">Type</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">Edm.Int32</span>&#8220;<span style="color: #0000ff;">/&gt; &lt;</span><span style="color: #a31515;">Property</span><span style="color: #ff0000;">Name</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">GF</span>&#8220;<span style="color: #ff0000;">Nullable</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">true</span>&#8220;<span style="color: #ff0000;">Type</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">Edm.Int32</span>&#8220;<span style="color: #0000ff;">/&gt; </span></li>
<li style="background: #f3f3f3;">                <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">Property</span><span style="color: #ff0000;">Name</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">R</span>&#8220;<span style="color: #ff0000;">Nullable</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">true</span>&#8220;<span style="color: #ff0000;">Type</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">Edm.Int32</span>&#8220;<span style="color: #0000ff;">/&gt; &lt;</span><span style="color: #a31515;">Property</span><span style="color: #ff0000;">Name</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">SH</span>&#8220;<span style="color: #ff0000;">Nullable</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">true</span>&#8220;<span style="color: #ff0000;">Type</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">Edm.Int32</span>&#8220;<span style="color: #0000ff;">/&gt; </span></li>
<li>                <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">Property</span><span style="color: #ff0000;">Name</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">SF</span>&#8220;<span style="color: #ff0000;">Nullable</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">true</span>&#8220;<span style="color: #ff0000;">Type</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">Edm.Int32</span>&#8220;<span style="color: #0000ff;">/&gt; &lt;</span><span style="color: #a31515;">Property</span><span style="color: #ff0000;">Name</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">GIDP</span>&#8220;<span style="color: #ff0000;">Nullable</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">true</span>&#8220;<span style="color: #ff0000;">Type</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">Edm.Int32</span>&#8220;<span style="color: #0000ff;">/&gt;</span></li>
<li style="background: #f3f3f3;">            <span style="color: #0000ff;">&lt;/</span><span style="color: #a31515;">EntityType</span><span style="color: #0000ff;">&gt;</span></li>
<li>            <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">Association</span><span style="color: #ff0000;">Name</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">FK_Allstar_Player</span>&#8220;<span style="color: #0000ff;">&gt;</span></li>
<li style="background: #f3f3f3;">                <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">End</span><span style="color: #ff0000;">Type</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">BaseballStatsModel.Player</span>&#8220;<span style="color: #ff0000;">Multiplicity</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">1</span>&#8220;<span style="color: #ff0000;">Role</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">Player</span>&#8220;<span style="color: #0000ff;">/&gt; &lt;</span><span style="color: #a31515;">End</span><span style="color: #ff0000;">Type</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">BaseballStatsModel.Allstar</span>&#8220;<span style="color: #ff0000;">Multiplicity</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">*</span>&#8220;<span style="color: #ff0000;">Role</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">Allstar</span>&#8220;<span style="color: #0000ff;">/&gt; &lt;</span><span style="color: #a31515;">ReferentialConstraint</span><span style="color: #0000ff;">&gt;</span></li>
<li>                    <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">Principal</span><span style="color: #ff0000;">Role</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">Player</span>&#8220;<span style="color: #0000ff;">&gt;</span></li>
<li style="background: #f3f3f3;">                        <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">PropertyRef</span><span style="color: #ff0000;">Name</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">playerID</span>&#8220;<span style="color: #0000ff;">/&gt;</span></li>
<li>                    <span style="color: #0000ff;">&lt;/</span><span style="color: #a31515;">Principal</span><span style="color: #0000ff;">&gt; &lt;</span><span style="color: #a31515;">Dependent</span><span style="color: #ff0000;">Role</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">Allstar</span>&#8220;<span style="color: #0000ff;">&gt;</span></li>
<li style="background: #f3f3f3;">                        <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">PropertyRef</span><span style="color: #ff0000;">Name</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">playerID</span>&#8220;<span style="color: #0000ff;">/&gt;</span></li>
<li>                    <span style="color: #0000ff;">&lt;/</span><span style="color: #a31515;">Dependent</span><span style="color: #0000ff;">&gt;</span></li>
<li style="background: #f3f3f3;">                <span style="color: #0000ff;">&lt;/</span><span style="color: #a31515;">ReferentialConstraint</span><span style="color: #0000ff;">&gt;</span></li>
<li>            <span style="color: #0000ff;">&lt;/</span><span style="color: #a31515;">Association</span><span style="color: #0000ff;">&gt;</span></li>
<li style="background: #f3f3f3;">            <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">Association</span><span style="color: #ff0000;">Name</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">FK_AllstarFull_Player</span>&#8220;<span style="color: #0000ff;">&gt;</span></li>
<li>                <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">End</span><span style="color: #ff0000;">Type</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">BaseballStatsModel.Player</span>&#8220;<span style="color: #ff0000;">Multiplicity</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">1</span>&#8220;<span style="color: #ff0000;">Role</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">Player</span>&#8220;<span style="color: #0000ff;">/&gt; &lt;</span><span style="color: #a31515;">End</span><span style="color: #ff0000;">Type</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">BaseballStatsModel.AllstarFull</span>&#8220;<span style="color: #ff0000;">Multiplicity</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">*</span>&#8220;<span style="color: #ff0000;">Role</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">AllstarFull</span>&#8220;<span style="color: #0000ff;">/&gt; &lt;</span><span style="color: #a31515;">ReferentialConstraint</span><span style="color: #0000ff;">&gt;</span></li>
<li style="background: #f3f3f3;">                    <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">Principal</span><span style="color: #ff0000;">Role</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">Player</span>&#8220;<span style="color: #0000ff;">&gt;</span></li>
<li>                        <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">PropertyRef</span><span style="color: #ff0000;">Name</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">playerID</span>&#8220;<span style="color: #0000ff;">/&gt;</span></li>
<li style="background: #f3f3f3;">                    <span style="color: #0000ff;">&lt;/</span><span style="color: #a31515;">Principal</span><span style="color: #0000ff;">&gt; &lt;</span><span style="color: #a31515;">Dependent</span><span style="color: #ff0000;">Role</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">AllstarFull</span>&#8220;<span style="color: #0000ff;">&gt;</span></li>
<li>                        <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">PropertyRef</span><span style="color: #ff0000;">Name</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">playerID</span>&#8220;<span style="color: #0000ff;">/&gt;</span></li>
<li style="background: #f3f3f3;">                    <span style="color: #0000ff;">&lt;/</span><span style="color: #a31515;">Dependent</span><span style="color: #0000ff;">&gt;</span></li>
<li>                <span style="color: #0000ff;">&lt;/</span><span style="color: #a31515;">ReferentialConstraint</span><span style="color: #0000ff;">&gt;</span></li>
<li style="background: #f3f3f3;">            <span style="color: #0000ff;">&lt;/</span><span style="color: #a31515;">Association</span><span style="color: #0000ff;">&gt;</span></li>
<li style="background: #f3f3f3;">            &#8230;</li>
<li style="background: #f3f3f3;">            <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">Association</span><span style="color: #ff0000;">Name</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">FK_TeamsHalf_Teams</span>&#8220;<span style="color: #0000ff;">&gt;</span></li>
<li>                <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">End</span><span style="color: #ff0000;">Type</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">BaseballStatsModel.Team</span>&#8220;<span style="color: #ff0000;">Multiplicity</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">1</span>&#8220;<span style="color: #ff0000;">Role</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">Team</span>&#8220;<span style="color: #0000ff;">/&gt; &lt;</span><span style="color: #a31515;">End</span><span style="color: #ff0000;">Type</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">BaseballStatsModel.TeamHalf</span>&#8220;<span style="color: #ff0000;">Multiplicity</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">*</span>&#8220;<span style="color: #ff0000;">Role</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">TeamHalf</span>&#8220;<span style="color: #0000ff;">/&gt; &lt;</span><span style="color: #a31515;">ReferentialConstraint</span><span style="color: #0000ff;">&gt;</span></li>
<li style="background: #f3f3f3;">                    <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">Principal</span><span style="color: #ff0000;">Role</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">Team</span>&#8220;<span style="color: #0000ff;">&gt;</span></li>
<li>                        <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">PropertyRef</span><span style="color: #ff0000;">Name</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">yearID</span>&#8220;<span style="color: #0000ff;">/&gt;</span></li>
<li style="background: #f3f3f3;">                        <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">PropertyRef</span><span style="color: #ff0000;">Name</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">lgID</span>&#8220;<span style="color: #0000ff;">/&gt;</span></li>
<li>                        <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">PropertyRef</span><span style="color: #ff0000;">Name</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">teamID</span>&#8220;<span style="color: #0000ff;">/&gt;</span></li>
<li style="background: #f3f3f3;">                    <span style="color: #0000ff;">&lt;/</span><span style="color: #a31515;">Principal</span><span style="color: #0000ff;">&gt; &lt;</span><span style="color: #a31515;">Dependent</span><span style="color: #ff0000;">Role</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">TeamHalf</span>&#8220;<span style="color: #0000ff;">&gt;</span></li>
<li>                        <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">PropertyRef</span><span style="color: #ff0000;">Name</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">yearID</span>&#8220;<span style="color: #0000ff;">/&gt;</span></li>
<li style="background: #f3f3f3;">                        <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">PropertyRef</span><span style="color: #ff0000;">Name</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">lgID</span>&#8220;<span style="color: #0000ff;">/&gt;</span></li>
<li>                        <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">PropertyRef</span><span style="color: #ff0000;">Name</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">teamID</span>&#8220;<span style="color: #0000ff;">/&gt;</span></li>
<li style="background: #f3f3f3;">                    <span style="color: #0000ff;">&lt;/</span><span style="color: #a31515;">Dependent</span><span style="color: #0000ff;">&gt;</span></li>
<li>                <span style="color: #0000ff;">&lt;/</span><span style="color: #a31515;">ReferentialConstraint</span><span style="color: #0000ff;">&gt;</span></li>
<li style="background: #f3f3f3;">            <span style="color: #0000ff;">&lt;/</span><span style="color: #a31515;">Association</span><span style="color: #0000ff;">&gt;</span></li>
<li>        <span style="color: #0000ff;">&lt;/</span><span style="color: #a31515;">Schema</span><span style="color: #0000ff;">&gt;</span></li>
<li style="background: #f3f3f3;">        <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">Schema</span><span style="color: #ff0000;">xmlns</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">http://schemas.microsoft.com/ado/2008/09/edm</span>&#8220;<span style="color: #ff0000;">xmlns:d</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">http://schemas.microsoft.com/ado/2007/08/dataservices</span>&#8220;<span style="color: #ff0000;">xmlns:m</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">http://schemas.microsoft.com/ado/2007/08/dataservices/metadata</span>&#8220;<span style="color: #ff0000;">Namespace</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">BaseballStatsOData</span>&#8220;<span style="color: #0000ff;">&gt;</span></li>
<li>            <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">EntityContainer</span><span style="color: #ff0000;">Name</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">BaseballStatsEntities</span>&#8220;<span style="color: #ff0000;">xmlns:p7</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">http://schemas.microsoft.com/ado/2009/02/edm/annotation</span>&#8220;<span style="color: #ff0000;">m:IsDefaultEntityContainer</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">true</span>&#8220;<span style="color: #ff0000;">p7:LazyLoadingEnabled</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">true</span>&#8220;<span style="color: #0000ff;">&gt;</span></li>
<li style="background: #f3f3f3;">                <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">EntitySet</span><span style="color: #ff0000;">Name</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">Allstar</span>&#8220;<span style="color: #ff0000;">EntityType</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">BaseballStatsModel.Allstar</span>&#8220;<span style="color: #0000ff;">/&gt; </span></li>
<li>                <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">EntitySet</span><span style="color: #ff0000;">Name</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">AllstarFull</span>&#8220;<span style="color: #ff0000;">EntityType</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">BaseballStatsModel.AllstarFull</span>&#8220;<span style="color: #0000ff;">/&gt; </span></li>
<li>                &#8230;</li>
<li>                <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">EntitySet</span><span style="color: #ff0000;">Name</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">PitchingTotals</span>&#8220;<span style="color: #ff0000;">EntityType</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">BaseballStatsModel.PitchingTotals</span>&#8220;<span style="color: #0000ff;">/&gt;</span></li>
<li style="background: #f3f3f3;">                <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">AssociationSet</span><span style="color: #ff0000;">Name</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">FK_Allstar_Player</span>&#8220;<span style="color: #ff0000;">Association</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">BaseballStatsModel.FK_Allstar_Player</span>&#8220;<span style="color: #0000ff;">&gt;</span></li>
<li>                    <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">End</span><span style="color: #ff0000;">Role</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">Player</span>&#8220;<span style="color: #ff0000;">EntitySet</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">Player</span>&#8220;<span style="color: #0000ff;">/&gt;</span></li>
<li style="background: #f3f3f3;">                    <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">End</span><span style="color: #ff0000;">Role</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">Allstar</span>&#8220;<span style="color: #ff0000;">EntitySet</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">Allstar</span>&#8220;<span style="color: #0000ff;">/&gt;</span></li>
<li>                <span style="color: #0000ff;">&lt;/</span><span style="color: #a31515;">AssociationSet</span><span style="color: #0000ff;">&gt; </span></li>
<li style="background: #f3f3f3;">                <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">AssociationSet</span><span style="color: #ff0000;">Name</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">FK_AllstarFull_Player</span>&#8220;<span style="color: #ff0000;">Association</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">BaseballStatsModel.FK_AllstarFull_Player</span>&#8220;<span style="color: #0000ff;">&gt;</span></li>
<li>                    <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">End</span><span style="color: #ff0000;">Role</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">Player</span>&#8220;<span style="color: #ff0000;">EntitySet</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">Player</span>&#8220;<span style="color: #0000ff;">/&gt;</span></li>
<li style="background: #f3f3f3;">                    <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">End</span><span style="color: #ff0000;">Role</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">AllstarFull</span>&#8220;<span style="color: #ff0000;">EntitySet</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">AllstarFull</span>&#8220;<span style="color: #0000ff;">/&gt;</span></li>
<li>                <span style="color: #0000ff;">&lt;/</span><span style="color: #a31515;">AssociationSet</span><span style="color: #0000ff;">&gt; </span></li>
<li>                &#8230;</li>
<li>                <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">AssociationSet</span><span style="color: #ff0000;">Name</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">FK_TeamsHalf_Teams</span>&#8220;<span style="color: #ff0000;">Association</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">BaseballStatsModel.FK_TeamsHalf_Teams</span>&#8220;<span style="color: #0000ff;">&gt;</span></li>
<li style="background: #f3f3f3;">                    <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">End</span><span style="color: #ff0000;">Role</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">Team</span>&#8220;<span style="color: #ff0000;">EntitySet</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">Team</span>&#8220;<span style="color: #0000ff;">/&gt;</span></li>
<li>                    <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">End</span><span style="color: #ff0000;">Role</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">TeamHalf</span>&#8220;<span style="color: #ff0000;">EntitySet</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">TeamHalf</span>&#8220;<span style="color: #0000ff;">/&gt;</span></li>
<li style="background: #f3f3f3;">                <span style="color: #0000ff;">&lt;/</span><span style="color: #a31515;">AssociationSet</span><span style="color: #0000ff;">&gt;</span></li>
<li>            <span style="color: #0000ff;">&lt;/</span><span style="color: #a31515;">EntityContainer</span><span style="color: #0000ff;">&gt;</span></li>
<li style="background: #f3f3f3;">        <span style="color: #0000ff;">&lt;/</span><span style="color: #a31515;">Schema</span><span style="color: #0000ff;">&gt;</span></li>
<li>    <span style="color: #0000ff;">&lt;/</span><span style="color: #a31515;">edmx:DataServices</span><span style="color: #0000ff;">&gt;</span></li>
<li style="background: #f3f3f3;"><span style="color: #0000ff;">&lt;/</span><span style="color: #a31515;">edmx:Edmx</span><span style="color: #0000ff;">&gt;</span></li>
</ol>
</div>
</div>
</div>
<h3>OData Model</h3>
<p>The OData Model section of the Service Metadata Document has the following structure:</p>
<div id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:8531444c-4ea1-46e7-bbdc-a40d240447d1" class="wlWriterEditableSmartContent" style="margin: 0px; display: inline; float: none; padding: 0px;">
<div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt;">
<div style="background: #000080; color: #fff; font-family: Verdana, Tahoma, Arial, sans-serif; font-weight: bold; padding: 2px 5px;">Code Snippet</div>
<div style="background: #ddd; max-height: 300px; overflow: auto;">
<ol style="background: #ffffff; margin: 0 0 0 2.5em; padding: 0 0 0 5px;" start="1">
<li><span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">Schema</span><span style="color: #ff0000;">Namespace</span><span style="color: #0000ff;">=</span>&#8220;&#8221;<span style="color: #0000ff;">&gt;</span></li>
<li style="background: #f3f3f3;">    <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">EntityType</span><span style="color: #ff0000;">Name</span><span style="color: #0000ff;">=</span>&#8220;&#8221;<span style="color: #0000ff;">&gt;</span></li>
<li>        <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">Key</span><span style="color: #0000ff;">&gt;</span></li>
<li style="background: #f3f3f3;">            <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">PropertyRef</span><span style="color: #ff0000;">Name</span><span style="color: #0000ff;">=</span>&#8220;&#8221;<span style="color: #0000ff;">/&gt;</span></li>
<li>        <span style="color: #0000ff;">&lt;/</span><span style="color: #a31515;">Key</span><span style="color: #0000ff;">&gt;</span></li>
<li style="background: #f3f3f3;">        <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">Property</span><span style="color: #ff0000;">Name</span><span style="color: #0000ff;">=</span>&#8220;&#8221;<span style="color: #ff0000;">Type</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">Edm.String</span>&#8220;<span style="color: #0000ff;">/&gt;</span></li>
<li>        <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">NavigationProperty</span><span style="color: #ff0000;">Name</span><span style="color: #0000ff;">=</span>&#8220;&#8221;<span style="color: #ff0000;">ToRole</span><span style="color: #0000ff;">=</span>&#8220;&#8221;<span style="color: #ff0000;">FromRole</span><span style="color: #0000ff;">=</span>&#8220;&#8221;<span style="color: #ff0000;">Relationship</span><span style="color: #0000ff;">=</span>&#8220;&#8221;<span style="color: #0000ff;">/&gt;</span></li>
<li style="background: #f3f3f3;">    <span style="color: #0000ff;">&lt;/</span><span style="color: #a31515;">EntityType</span><span style="color: #0000ff;">&gt;</span></li>
<li style="background: #f3f3f3;">    &#8230;</li>
<li style="background: #f3f3f3;">    <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">Association</span><span style="color: #ff0000;">Name</span><span style="color: #0000ff;">=</span>&#8220;&#8221;<span style="color: #0000ff;">&gt;</span></li>
<li>        <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">End</span><span style="color: #ff0000;">Type</span><span style="color: #0000ff;">=</span>&#8220;&#8221;<span style="color: #ff0000;">Multiplicity</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">1</span>&#8220;<span style="color: #ff0000;">Role</span><span style="color: #0000ff;">=</span>&#8220;&#8221;<span style="color: #0000ff;">/&gt;</span></li>
<li style="background: #f3f3f3;">        <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">End</span><span style="color: #ff0000;">Type</span><span style="color: #0000ff;">=</span>&#8220;&#8221;<span style="color: #ff0000;">Multiplicity</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">*</span>&#8220;<span style="color: #ff0000;">Role</span><span style="color: #0000ff;">=</span>&#8220;&#8221;<span style="color: #0000ff;">/&gt;</span></li>
<li>        <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">ReferentialConstraint</span><span style="color: #0000ff;">&gt;</span></li>
<li style="background: #f3f3f3;">            <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">Principal</span><span style="color: #ff0000;">Role</span><span style="color: #0000ff;">=</span>&#8220;&#8221;<span style="color: #0000ff;">&gt;</span></li>
<li>                <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">PropertyRef</span><span style="color: #ff0000;">Name</span><span style="color: #0000ff;">=</span>&#8220;&#8221;<span style="color: #0000ff;">/&gt;</span></li>
<li style="background: #f3f3f3;">            <span style="color: #0000ff;">&lt;/</span><span style="color: #a31515;">Principal</span><span style="color: #0000ff;">&gt;</span></li>
<li>            <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">Dependent</span><span style="color: #ff0000;">Role</span><span style="color: #0000ff;">=</span>&#8220;&#8221;<span style="color: #0000ff;">&gt;</span></li>
<li style="background: #f3f3f3;">                <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">PropertyRef</span><span style="color: #ff0000;">Name</span><span style="color: #0000ff;">=</span>&#8220;&#8221;<span style="color: #0000ff;">/&gt;</span></li>
<li>            <span style="color: #0000ff;">&lt;/</span><span style="color: #a31515;">Dependent</span><span style="color: #0000ff;">&gt;</span></li>
<li style="background: #f3f3f3;">        <span style="color: #0000ff;">&lt;/</span><span style="color: #a31515;">ReferentialConstraint</span><span style="color: #0000ff;">&gt;</span></li>
<li>    <span style="color: #0000ff;">&lt;/</span><span style="color: #a31515;">Association</span><span style="color: #0000ff;">&gt;</span></li>
<li>    &#8230;</li>
<li><span style="color: #0000ff;">&lt;/</span><span style="color: #a31515;">Schema</span><span style="color: #0000ff;">&gt;</span></li>
</ol>
</div>
</div>
</div>
<p>The purpose of the OData Model section is to give the detailed information for each object in the OData feed. The first objects aggregated in the OData Model are the EntityTypes with their full descriptions including the Key, Properties and NavigationProperties. Next is the set of Associations that are in the Entity Data Model. In addition each metadata type is fully described based on the data such as the EntityType’s Property details such as type, if the Property is nullable, the maximum length of the data of the property and/or many more that give us a complete view of the Property. Another example is the details of the Association which will give the entities the Association join together as well as the type of join.</p>
<h3>Entity Collection</h3>
<p>The Entity Collection is also part of the Service Metadata Document and it follows the OData Model in the payload that is returned from the OData feed. An example of the Entity Collection follows:</p>
<div id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:368a5854-2d8e-4552-a6ad-ec14ad113f53" class="wlWriterEditableSmartContent" style="margin: 0px; display: inline; float: none; padding: 0px;">
<div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt;">
<div style="background: #000080; color: #fff; font-family: Verdana, Tahoma, Arial, sans-serif; font-weight: bold; padding: 2px 5px;">Code Snippet</div>
<div style="background: #ddd; max-height: 300px; overflow: auto;">
<ol style="background: #ffffff; margin: 0 0 0 2.5em; padding: 0 0 0 5px;" start="1">
<li><span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">Schema</span><span style="color: #ff0000;">xmlns</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">http://schemas.microsoft.com/ado/2008/09/edm</span>&#8220;<span style="color: #ff0000;">xmlns:d</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">http://schemas.microsoft.com/ado/2007/08/dataservices</span>&#8220;<span style="color: #ff0000;">xmlns:m</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">http://schemas.microsoft.com/ado/2007/08/dataservices/metadata</span>&#8220;<span style="color: #ff0000;">Namespace</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">MyOData</span>&#8220;<span style="color: #0000ff;">&gt;</span></li>
<li style="background: #f3f3f3;">    <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">EntityContainer</span><span style="color: #ff0000;">Name</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">MyEntities</span>&#8220;<span style="color: #ff0000;">xmlns:p7</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">http://schemas.microsoft.com/ado/2009/02/edm/annotation</span>&#8220;<span style="color: #ff0000;">m:IsDefaultEntityContainer</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">true</span>&#8220;<span style="color: #ff0000;">p7:LazyLoadingEnabled</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">true</span>&#8220;<span style="color: #0000ff;">&gt;</span></li>
<li>        <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">EntitySet</span><span style="color: #ff0000;">Name</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">Entity1</span>&#8220;<span style="color: #ff0000;">EntityType</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">ODataModel.Entity1</span>&#8220;<span style="color: #0000ff;">/&gt;</span></li>
<li style="background: #f3f3f3;">        <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">EntitySet</span><span style="color: #ff0000;">Name</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">Entity2</span>&#8220;<span style="color: #ff0000;">EntityType</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">ODataModel.Entity2</span>&#8220;<span style="color: #0000ff;">/&gt;</span></li>
<li style="background: #f3f3f3;">        &#8230;</li>
<li style="background: #f3f3f3;">        <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">EntitySet</span><span style="color: #ff0000;">Name</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">ODataModel</span>&#8220;<span style="color: #ff0000;">EntityType</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">ODataModel.EntityN</span>&#8220;<span style="color: #0000ff;">/&gt;</span></li>
<li>        <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">AssociationSet</span><span style="color: #ff0000;">Name</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">FK_Entity1_Entity2</span>&#8220;<span style="color: #ff0000;">Association</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">ODataModel.FK_Entity1_Entity2</span>&#8220;<span style="color: #0000ff;">&gt;</span></li>
<li style="background: #f3f3f3;">            <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">End</span><span style="color: #ff0000;">Role</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">Entity1</span>&#8220;<span style="color: #ff0000;">EntitySet</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">Entity1</span>&#8220;<span style="color: #0000ff;">/&gt;</span></li>
<li>            <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">End</span><span style="color: #ff0000;">Role</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">Entity2</span>&#8220;<span style="color: #ff0000;">EntitySet</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">Entity2</span>&#8220;<span style="color: #0000ff;">/&gt;</span></li>
<li style="background: #f3f3f3;">        <span style="color: #0000ff;">&lt;/</span><span style="color: #a31515;">AssociationSet</span><span style="color: #0000ff;">&gt;</span></li>
<li style="background: #f3f3f3;">        &#8230;</li>
<li style="background: #f3f3f3;">        <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">AssociationSet</span><span style="color: #ff0000;">Name</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">FK_Entity1_EntityN</span>&#8220;<span style="color: #ff0000;">Association</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">ODataModel.FK_Entity1_EntityN</span>&#8220;<span style="color: #0000ff;">&gt;</span></li>
<li>            <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">End</span><span style="color: #ff0000;">Role</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">Entity1</span>&#8220;<span style="color: #ff0000;">EntitySet</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">Entity1</span>&#8220;<span style="color: #0000ff;">/&gt;</span></li>
<li style="background: #f3f3f3;">            <span style="color: #0000ff;">&lt;</span><span style="color: #a31515;">End</span><span style="color: #ff0000;">Role</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">EntityN</span>&#8220;<span style="color: #ff0000;">EntitySet</span><span style="color: #0000ff;">=</span>&#8220;<span style="color: #0000ff;">EntityN</span>&#8220;<span style="color: #0000ff;">/&gt;</span></li>
<li>        <span style="color: #0000ff;">&lt;/</span><span style="color: #a31515;">AssociationSet</span><span style="color: #0000ff;">&gt;</span></li>
<li style="background: #f3f3f3;">    <span style="color: #0000ff;">&lt;/</span><span style="color: #a31515;">EntityContainer</span><span style="color: #0000ff;">&gt;</span></li>
<li><span style="color: #0000ff;">&lt;/</span><span style="color: #a31515;">Schema</span><span style="color: #0000ff;">&gt;</span></li>
</ol>
</div>
</div>
</div>
<p>The Entity Collection does not contain the details of the Entities and Associations contained in the OData feed. It is only the references from the OData Model and gives the roadmap to quickly transverse the landscape from the OData feed. The Entity Collection is made up of the following sections:</p>
<ul>
<li>EntitySet</li>
<li>AssociationSet</li>
</ul>
<p>You can learn more about the Entity Collection from the <a href="http://chriswoodruff.com/2011/12/04/31-days-of-odata-day-3-odata-entity-data-model-2/">third day of the blog series</a>. I will not go through it again since it is the same content and details from that post.</p>
<h3>Why should I love the Metadata?</h3>
<p><a href="http://chriswoodruff.com/wp-content/uploads/2011/12/image.png"><img style="background-image: none; margin: 0px 10px 0px 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; padding-top: 0px; border: 0px;" title="image" src="http://chriswoodruff.com/wp-content/uploads/2011/12/image_thumb.png" alt="image" width="147" height="200" align="left" border="0" /></a>When I speak and present to the community about OData, I think most people do not get the beauty of Metadata. I have a slide deck where I show an iceberg and the data is shown above the water and metadata below. I have the image in this post so you can see what I mean. I do not assume that the Metadata is larger in size or greater in importance to the Data of the OData feed. What I try to get across to the audience is that we may either not see the importance of Metadata or the power we receive from it. It really is the hidden secret of OData (and the Semantic Web).</p>
<p>what most developers also do not know is that is they have worked with OData within Visual Studio 2010 they have benefited from the Metadata of OData. You may ask how and if so lets look at adding a Service Reference to a VS10 project.When we need to add a reference to an OData feed into our VS10 project we usually add it through the “Add Service Reference” feature as shown below:</p>
<p><a href="http://chriswoodruff.com/wp-content/uploads/2011/12/AddServiceRefence.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;" title="AddServiceRefence" src="http://chriswoodruff.com/wp-content/uploads/2011/12/AddServiceRefence_thumb.png" alt="AddServiceRefence" width="366" height="157" border="0" /></a></p>
<p>Going through the Wizard to allow the project access to the OData feed is not anything but the Wizard gathering the metadata from the OData feed and creating the proxy classes based on the EntityTypes from the Service Metadata Document. You can see that the Wizard after discovering the metadata from the OData feed gives us the list of the EntityTypes in the Wizard as shown below. With the proxy classes generated your application has the local Model that can be used to build, retrieve and handle the data from the OData.</p>
<p><a href="http://chriswoodruff.com/wp-content/uploads/2011/12/AddServiceRefenceWizard.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;" title="AddServiceRefenceWizard" src="http://chriswoodruff.com/wp-content/uploads/2011/12/AddServiceRefenceWizard_thumb.png" alt="AddServiceRefenceWizard" width="505" height="484" border="0" /></a></p>
<p>Now that we have looked at the Metadata of OData, the moving parts of the Metadata Service Document and finally a real world example on how we work with the Metadata each day, I hope this gives you a little more appreciation for OData and also for the protocol.</p>
]]></content:encoded>
			<wfw:commentRss>http://chriswoodruff.com/2011/12/09/31-days-of-odata-day-4-metadata-in-odata/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>31 Days of OData &#8211; Day 3 OData Entity Data Model</title>
		<link>http://chriswoodruff.com/2011/12/04/31-days-of-odata-day-3-odata-entity-data-model/</link>
		<comments>http://chriswoodruff.com/2011/12/04/31-days-of-odata-day-3-odata-entity-data-model/#comments</comments>
		<pubDate>Sun, 04 Dec 2011 19:48:27 +0000</pubDate>
		<dc:creator>cwoodruff</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[31 Days]]></category>
		<category><![CDATA[OData]]></category>

		<guid isPermaLink="false">http://chriswoodruff.com/2011/12/04/31-days-of-odata-day-3-odata-entity-data-model-2/</guid>
		<description><![CDATA[From Day 2 of the series, we looked at data types that are present in the OData protocol. These data types allow for the richness of the data experience. Next we will look at taking these data types and crafting the entities that make up the OData feed. An OData feed is very much like]]></description>
			<content:encoded><![CDATA[<p><a href="http://chriswoodruff.com/wp-content/uploads/2011/12/OData-logo_bigger3.png"><img style="background-image: none; margin: 0px 5px 0px 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; padding-top: 0px; border-width: 0px;" title="OData-logo_bigger" src="http://chriswoodruff.com/wp-content/uploads/2011/12/OData-logo_bigger_thumb3.png" alt="OData-logo_bigger" width="73" height="73" align="left" border="0" /></a>From Day 2 of the series, we looked at data types that are present in the OData protocol. These data types allow for the richness of the data experience. Next we will look at taking these data types and crafting the entities that make up the OData feed.</p>
<p>An OData feed is very much like a database with tables, foreign keys and stored procedures. The data from an OData feed does not have to originate in a relational database but this is the first and most important type of data repository that OData can represent. The OData’s <strong>Entity Data Model</strong> (EDM) is simple but elegant in its representation of the data. It is designed to handle the data but also the relationships between entities that allow for the rich data experience we experience.</p>
<h3>The Roadmap of the EDM</h3>
<p>Just like a roadmap the EDM acts as a guide that allows us to travel the OData feed’s paths. It furnishes us the collections of entities and all details needed to understand the entities within its map. The EDM also gives us the paths or associations between the unique Entities of the OData feed. The ability to navigate easily without knowing much about the layout of the OData land is where OData gives us the freedom to have the Data Experiences (DX) we need for today’s solutions and consumer expectations.</p>
<p>The Entitles in an OData feed represents a specific type of data or <strong>Entity Type</strong>. The Entity Types of an OData feed could simulate some real world item, concept or idea such as a Book, College Course or Business Plan. The Entity Type contains properties that must adhere to the data types allowed and provided by the OData protocol or be of a Complex Type (explained later). To exist in the OData protocol, the Entity Type must be unique and so must have a unique identifier that allow for the Entities of that Entity Type to be located and used within the OData Feed. The <strong>Entity Key</strong> can be composed of one or more Entity properties and will be a unique property for the Entity Type. Most Entity Types will have a single property but that is not a requirement. An example of a multiple property Entity Type key is on my <a href="http://baseball-stats.info/OData/baseballstats.svc">baseball stats OData feed</a> and the Batting Entity Type.</p>
<pre class="code"></pre>
<p>The Batting Entity Type in my baseball stats OData feed is comprised of the following properties:</p>
<ul>
<li>playerID – the Player Entity Type’s Key</li>
<li>yearID – the year of the baseball season</li>
<li>stint – baseball players could be traded and traded back to a team in the same season so needs to be tracked</li>
<li>teamID – the team the Player played for in the stint</li>
<li>lgID – the league of the team the player played for in the stint</li>
</ul>
<p>As you can see OData can handle complex or composite Keys and allow for almost anything we give it. The collection of Entities is grouped in an Entity Set within the OData feed.</p>
<p>The following is an example of an Entity Type from the baseball statistics OData feed.</p>
<pre class="code"><span style="color: blue;">&lt;</span><span style="color: #a31515;">EntityType </span><span style="color: red;">Name</span><span style="color: blue;">=</span>"<span style="color: blue;">Player</span>"<span style="color: blue;">&gt; &lt;</span><span style="color: #a31515;">Key</span><span style="color: blue;">&gt; &lt;</span><span style="color: #a31515;">PropertyRef </span><span style="color: red;">Name</span><span style="color: blue;">=</span>"<span style="color: blue;">playerID</span>"<span style="color: blue;">/&gt; &lt;/</span><span style="color: #a31515;">Key</span><span style="color: blue;">&gt; &lt;</span><span style="color: #a31515;">Property </span><span style="color: red;">Name</span><span style="color: blue;">=</span>"<span style="color: blue;">playerID</span>" <span style="color: red;">FixedLength</span><span style="color: blue;">=</span>"<span style="color: blue;">false</span>" <span style="color: red;">Unicode</span><span style="color: blue;">=</span>"<span style="color: blue;">true</span>" <span style="color: red;">MaxLength</span><span style="color: blue;">=</span>"<span style="color: blue;">10</span>" <span style="color: red;">Nullable</span><span style="color: blue;">=</span>"<span style="color: blue;">false</span>" <span style="color: red;">Type</span><span style="color: blue;">=</span>"<span style="color: blue;">Edm.String</span>"<span style="color: blue;">/&gt; &lt;</span><span style="color: #a31515;">Property </span><span style="color: red;">Name</span><span style="color: blue;">=</span>"<span style="color: blue;">hofID</span>" <span style="color: red;">FixedLength</span><span style="color: blue;">=</span>"<span style="color: blue;">false</span>" <span style="color: red;">Unicode</span><span style="color: blue;">=</span>"<span style="color: blue;">true</span>" <span style="color: red;">MaxLength</span><span style="color: blue;">=</span>"<span style="color: blue;">10</span>" <span style="color: red;">Nullable</span><span style="color: blue;">=</span>"<span style="color: blue;">true</span>" <span style="color: red;">Type</span><span style="color: blue;">=</span>"<span style="color: blue;">Edm.String</span>"<span style="color: blue;">/&gt; &lt;</span><span style="color: #a31515;">Property </span><span style="color: red;">Name</span><span style="color: blue;">=</span>"<span style="color: blue;">birthYear</span>" <span style="color: red;">Nullable</span><span style="color: blue;">=</span>"<span style="color: blue;">true</span>" <span style="color: red;">Type</span><span style="color: blue;">=</span>"<span style="color: blue;">Edm.Int16</span>"<span style="color: blue;">/&gt; &lt;</span><span style="color: #a31515;">Property </span><span style="color: red;">Name</span><span style="color: blue;">=</span>"<span style="color: blue;">birthMonth</span>" <span style="color: red;">Nullable</span><span style="color: blue;">=</span>"<span style="color: blue;">true</span>" <span style="color: red;">Type</span><span style="color: blue;">=</span>"<span style="color: blue;">Edm.Int16</span>"<span style="color: blue;">/&gt; &lt;</span><span style="color: #a31515;">Property </span><span style="color: red;">Name</span><span style="color: blue;">=</span>"<span style="color: blue;">birthDay</span>" <span style="color: red;">Nullable</span><span style="color: blue;">=</span>"<span style="color: blue;">true</span>" <span style="color: red;">Type</span><span style="color: blue;">=</span>"<span style="color: blue;">Edm.Int16</span>"<span style="color: blue;">/&gt; &lt;</span><span style="color: #a31515;">Property </span><span style="color: red;">Name</span><span style="color: blue;">=</span>"<span style="color: blue;">birthCountry</span>" <span style="color: red;">FixedLength</span><span style="color: blue;">=</span>"<span style="color: blue;">false</span>" <span style="color: red;">Unicode</span><span style="color: blue;">=</span>"<span style="color: blue;">true</span>" <span style="color: red;">MaxLength</span><span style="color: blue;">=</span>"<span style="color: blue;">50</span>" <span style="color: red;">Nullable</span><span style="color: blue;">=</span>"<span style="color: blue;">true</span>" <span style="color: red;">Type</span><span style="color: blue;">=</span>"<span style="color: blue;">Edm.String</span>"<span style="color: blue;">/&gt; &lt;</span><span style="color: #a31515;">Property </span><span style="color: red;">Name</span><span style="color: blue;">=</span>"<span style="color: blue;">birthState</span>" <span style="color: red;">FixedLength</span><span style="color: blue;">=</span>"<span style="color: blue;">false</span>" <span style="color: red;">Unicode</span><span style="color: blue;">=</span>"<span style="color: blue;">true</span>" <span style="color: red;">MaxLength</span><span style="color: blue;">=</span>"<span style="color: blue;">2</span>" <span style="color: red;">Nullable</span><span style="color: blue;">=</span>"<span style="color: blue;">true</span>" <span style="color: red;">Type</span><span style="color: blue;">=</span>"<span style="color: blue;">Edm.String</span>"<span style="color: blue;">/&gt; &lt;</span><span style="color: #a31515;">Property </span><span style="color: red;">Name</span><span style="color: blue;">=</span>"<span style="color: blue;">birthCity</span>" <span style="color: red;">FixedLength</span><span style="color: blue;">=</span>"<span style="color: blue;">false</span>" <span style="color: red;">Unicode</span><span style="color: blue;">=</span>"<span style="color: blue;">true</span>" <span style="color: red;">MaxLength</span><span style="color: blue;">=</span>"<span style="color: blue;">50</span>" <span style="color: red;">Nullable</span><span style="color: blue;">=</span>"<span style="color: blue;">true</span>" <span style="color: red;">Type</span><span style="color: blue;">=</span>"<span style="color: blue;">Edm.String</span>"<span style="color: blue;">/&gt; &lt;</span><span style="color: #a31515;">Property </span><span style="color: red;">Name</span><span style="color: blue;">=</span>"<span style="color: blue;">deathYear</span>" <span style="color: red;">Nullable</span><span style="color: blue;">=</span>"<span style="color: blue;">true</span>" <span style="color: red;">Type</span><span style="color: blue;">=</span>"<span style="color: blue;">Edm.Int16</span>"<span style="color: blue;">/&gt; &lt;</span><span style="color: #a31515;">Property </span><span style="color: red;">Name</span><span style="color: blue;">=</span>"<span style="color: blue;">deathMonth</span>" <span style="color: red;">Nullable</span><span style="color: blue;">=</span>"<span style="color: blue;">true</span>" <span style="color: red;">Type</span><span style="color: blue;">=</span>"<span style="color: blue;">Edm.Int16</span>"<span style="color: blue;">/&gt; &lt;</span><span style="color: #a31515;">Property </span><span style="color: red;">Name</span><span style="color: blue;">=</span>"<span style="color: blue;">deathDay</span>" <span style="color: red;">Nullable</span><span style="color: blue;">=</span>"<span style="color: blue;">true</span>" <span style="color: red;">Type</span><span style="color: blue;">=</span>"<span style="color: blue;">Edm.Int16</span>"<span style="color: blue;">/&gt; &lt;</span><span style="color: #a31515;">Property </span><span style="color: red;">Name</span><span style="color: blue;">=</span>"<span style="color: blue;">deathCountry</span>" <span style="color: red;">FixedLength</span><span style="color: blue;">=</span>"<span style="color: blue;">false</span>" <span style="color: red;">Unicode</span><span style="color: blue;">=</span>"<span style="color: blue;">true</span>" <span style="color: red;">MaxLength</span><span style="color: blue;">=</span>"<span style="color: blue;">50</span>" <span style="color: red;">Nullable</span><span style="color: blue;">=</span>"<span style="color: blue;">true</span>" <span style="color: red;">Type</span><span style="color: blue;">=</span>"<span style="color: blue;">Edm.String</span>"<span style="color: blue;">/&gt; &lt;</span><span style="color: #a31515;">Property </span><span style="color: red;">Name</span><span style="color: blue;">=</span>"<span style="color: blue;">deathState</span>" <span style="color: red;">FixedLength</span><span style="color: blue;">=</span>"<span style="color: blue;">false</span>" <span style="color: red;">Unicode</span><span style="color: blue;">=</span>"<span style="color: blue;">true</span>" <span style="color: red;">MaxLength</span><span style="color: blue;">=</span>"<span style="color: blue;">2</span>" <span style="color: red;">Nullable</span><span style="color: blue;">=</span>"<span style="color: blue;">true</span>" <span style="color: red;">Type</span><span style="color: blue;">=</span>"<span style="color: blue;">Edm.String</span>"<span style="color: blue;">/&gt; &lt;</span><span style="color: #a31515;">Property </span><span style="color: red;">Name</span><span style="color: blue;">=</span>"<span style="color: blue;">deathCity</span>" <span style="color: red;">FixedLength</span><span style="color: blue;">=</span>"<span style="color: blue;">false</span>" <span style="color: red;">Unicode</span><span style="color: blue;">=</span>"<span style="color: blue;">true</span>" <span style="color: red;">MaxLength</span><span style="color: blue;">=</span>"<span style="color: blue;">50</span>" <span style="color: red;">Nullable</span><span style="color: blue;">=</span>"<span style="color: blue;">true</span>" <span style="color: red;">Type</span><span style="color: blue;">=</span>"<span style="color: blue;">Edm.String</span>"<span style="color: blue;">/&gt; &lt;</span><span style="color: #a31515;">Property </span><span style="color: red;">Name</span><span style="color: blue;">=</span>"<span style="color: blue;">nameFirst</span>" <span style="color: red;">FixedLength</span><span style="color: blue;">=</span>"<span style="color: blue;">false</span>" <span style="color: red;">Unicode</span><span style="color: blue;">=</span>"<span style="color: blue;">true</span>" <span style="color: red;">MaxLength</span><span style="color: blue;">=</span>"<span style="color: blue;">50</span>" <span style="color: red;">Nullable</span><span style="color: blue;">=</span>"<span style="color: blue;">true</span>" <span style="color: red;">Type</span><span style="color: blue;">=</span>"<span style="color: blue;">Edm.String</span>"<span style="color: blue;">/&gt; &lt;</span><span style="color: #a31515;">Property </span><span style="color: red;">Name</span><span style="color: blue;">=</span>"<span style="color: blue;">nameLast</span>" <span style="color: red;">FixedLength</span><span style="color: blue;">=</span>"<span style="color: blue;">false</span>" <span style="color: red;">Unicode</span><span style="color: blue;">=</span>"<span style="color: blue;">true</span>" <span style="color: red;">MaxLength</span><span style="color: blue;">=</span>"<span style="color: blue;">50</span>" <span style="color: red;">Nullable</span><span style="color: blue;">=</span>"<span style="color: blue;">true</span>" <span style="color: red;">Type</span><span style="color: blue;">=</span>"<span style="color: blue;">Edm.String</span>"<span style="color: blue;">/&gt; &lt;</span><span style="color: #a31515;">Property </span><span style="color: red;">Name</span><span style="color: blue;">=</span>"<span style="color: blue;">nameNote</span>" <span style="color: red;">FixedLength</span><span style="color: blue;">=</span>"<span style="color: blue;">false</span>" <span style="color: red;">Unicode</span><span style="color: blue;">=</span>"<span style="color: blue;">true</span>" <span style="color: red;">MaxLength</span><span style="color: blue;">=</span>"<span style="color: blue;">255</span>" <span style="color: red;">Nullable</span><span style="color: blue;">=</span>"<span style="color: blue;">true</span>" <span style="color: red;">Type</span><span style="color: blue;">=</span>"<span style="color: blue;">Edm.String</span>"<span style="color: blue;">/&gt; &lt;</span><span style="color: #a31515;">Property </span><span style="color: red;">Name</span><span style="color: blue;">=</span>"<span style="color: blue;">nameGiven</span>" <span style="color: red;">FixedLength</span><span style="color: blue;">=</span>"<span style="color: blue;">false</span>" <span style="color: red;">Unicode</span><span style="color: blue;">=</span>"<span style="color: blue;">true</span>" <span style="color: red;">MaxLength</span><span style="color: blue;">=</span>"<span style="color: blue;">255</span>" <span style="color: red;">Nullable</span><span style="color: blue;">=</span>"<span style="color: blue;">true</span>" <span style="color: red;">Type</span><span style="color: blue;">=</span>"<span style="color: blue;">Edm.String</span>"<span style="color: blue;">/&gt; &lt;</span><span style="color: #a31515;">Property </span><span style="color: red;">Name</span><span style="color: blue;">=</span>"<span style="color: blue;">nameNick</span>" <span style="color: red;">FixedLength</span><span style="color: blue;">=</span>"<span style="color: blue;">false</span>" <span style="color: red;">Unicode</span><span style="color: blue;">=</span>"<span style="color: blue;">true</span>" <span style="color: red;">MaxLength</span><span style="color: blue;">=</span>"<span style="color: blue;">255</span>" <span style="color: red;">Nullable</span><span style="color: blue;">=</span>"<span style="color: blue;">true</span>" <span style="color: red;">Type</span><span style="color: blue;">=</span>"<span style="color: blue;">Edm.String</span>"<span style="color: blue;">/&gt; &lt;</span><span style="color: #a31515;">Property </span><span style="color: red;">Name</span><span style="color: blue;">=</span>"<span style="color: blue;">weight</span>" <span style="color: red;">Nullable</span><span style="color: blue;">=</span>"<span style="color: blue;">true</span>" <span style="color: red;">Type</span><span style="color: blue;">=</span>"<span style="color: blue;">Edm.Int16</span>"<span style="color: blue;">/&gt; &lt;</span><span style="color: #a31515;">Property </span><span style="color: red;">Name</span><span style="color: blue;">=</span>"<span style="color: blue;">height</span>" <span style="color: red;">Nullable</span><span style="color: blue;">=</span>"<span style="color: blue;">true</span>" <span style="color: red;">Type</span><span style="color: blue;">=</span>"<span style="color: blue;">Edm.Double</span>"<span style="color: blue;">/&gt; &lt;</span><span style="color: #a31515;">Property </span><span style="color: red;">Name</span><span style="color: blue;">=</span>"<span style="color: blue;">bats</span>" <span style="color: red;">FixedLength</span><span style="color: blue;">=</span>"<span style="color: blue;">false</span>" <span style="color: red;">Unicode</span><span style="color: blue;">=</span>"<span style="color: blue;">true</span>" <span style="color: red;">MaxLength</span><span style="color: blue;">=</span>"<span style="color: blue;">1</span>" <span style="color: red;">Nullable</span><span style="color: blue;">=</span>"<span style="color: blue;">true</span>" <span style="color: red;">Type</span><span style="color: blue;">=</span>"<span style="color: blue;">Edm.String</span>"<span style="color: blue;">/&gt; &lt;</span><span style="color: #a31515;">Property </span><span style="color: red;">Name</span><span style="color: blue;">=</span>"<span style="color: blue;">throws</span>" <span style="color: red;">FixedLength</span><span style="color: blue;">=</span>"<span style="color: blue;">false</span>" <span style="color: red;">Unicode</span><span style="color: blue;">=</span>"<span style="color: blue;">true</span>" <span style="color: red;">MaxLength</span><span style="color: blue;">=</span>"<span style="color: blue;">1</span>" <span style="color: red;">Nullable</span><span style="color: blue;">=</span>"<span style="color: blue;">true</span>" <span style="color: red;">Type</span><span style="color: blue;">=</span>"<span style="color: blue;">Edm.String</span>"<span style="color: blue;">/&gt; &lt;</span><span style="color: #a31515;">Property </span><span style="color: red;">Name</span><span style="color: blue;">=</span>"<span style="color: blue;">debut</span>" <span style="color: red;">Nullable</span><span style="color: blue;">=</span>"<span style="color: blue;">true</span>" <span style="color: red;">Type</span><span style="color: blue;">=</span>"<span style="color: blue;">Edm.DateTime</span>"<span style="color: blue;">/&gt; &lt;</span><span style="color: #a31515;">Property </span><span style="color: red;">Name</span><span style="color: blue;">=</span>"<span style="color: blue;">finalGame</span>" <span style="color: red;">Nullable</span><span style="color: blue;">=</span>"<span style="color: blue;">true</span>" <span style="color: red;">Type</span><span style="color: blue;">=</span>"<span style="color: blue;">Edm.DateTime</span>"<span style="color: blue;">/&gt; &lt;</span><span style="color: #a31515;">Property </span><span style="color: red;">Name</span><span style="color: blue;">=</span>"<span style="color: blue;">college</span>" <span style="color: red;">FixedLength</span><span style="color: blue;">=</span>"<span style="color: blue;">false</span>" <span style="color: red;">Unicode</span><span style="color: blue;">=</span>"<span style="color: blue;">true</span>" <span style="color: red;">MaxLength</span><span style="color: blue;">=</span>"<span style="color: blue;">50</span>" <span style="color: red;">Nullable</span><span style="color: blue;">=</span>"<span style="color: blue;">true</span>" <span style="color: red;">Type</span><span style="color: blue;">=</span>"<span style="color: blue;">Edm.String</span>"<span style="color: blue;">/&gt; &lt;</span><span style="color: #a31515;">NavigationProperty </span><span style="color: red;">Name</span><span style="color: blue;">=</span>"<span style="color: blue;">Allstar</span>" <span style="color: red;">ToRole</span><span style="color: blue;">=</span>"<span style="color: blue;">Allstar</span>" <span style="color: red;">FromRole</span><span style="color: blue;">=</span>"<span style="color: blue;">Player</span>" <span style="color: red;">Relationship</span><span style="color: blue;">=</span>"<span style="color: blue;">BaseballStatsModel.FK_Allstar_Player</span>"<span style="color: blue;">/&gt; &lt;</span><span style="color: #a31515;">NavigationProperty </span><span style="color: red;">Name</span><span style="color: blue;">=</span>"<span style="color: blue;">AllstarFull</span>" <span style="color: red;">ToRole</span><span style="color: blue;">=</span>"<span style="color: blue;">AllstarFull</span>" <span style="color: red;">FromRole</span><span style="color: blue;">=</span>"<span style="color: blue;">Player</span>" <span style="color: red;">Relationship</span><span style="color: blue;">=</span>"<span style="color: blue;">BaseballStatsModel.FK_AllstarFull_Player</span>"<span style="color: blue;">/&gt; &lt;</span><span style="color: #a31515;">NavigationProperty </span><span style="color: red;">Name</span><span style="color: blue;">=</span>"<span style="color: blue;">Appearance</span>" <span style="color: red;">ToRole</span><span style="color: blue;">=</span>"<span style="color: blue;">Appearance</span>" <span style="color: red;">FromRole</span><span style="color: blue;">=</span>"<span style="color: blue;">Player</span>" <span style="color: red;">Relationship</span><span style="color: blue;">=</span>"<span style="color: blue;">BaseballStatsModel.FK_Appearances_Player</span>"<span style="color: blue;">/&gt; &lt;</span><span style="color: #a31515;">NavigationProperty </span><span style="color: red;">Name</span><span style="color: blue;">=</span>"<span style="color: blue;">AwardPlayer</span>" <span style="color: red;">ToRole</span><span style="color: blue;">=</span>"<span style="color: blue;">AwardPlayer</span>" <span style="color: red;">FromRole</span><span style="color: blue;">=</span>"<span style="color: blue;">Player</span>" <span style="color: red;">Relationship</span><span style="color: blue;">=</span>"<span style="color: blue;">BaseballStatsModel.FK_AwardsPlayers_Player</span>"<span style="color: blue;">/&gt; &lt;</span><span style="color: #a31515;">NavigationProperty </span><span style="color: red;">Name</span><span style="color: blue;">=</span>"<span style="color: blue;">AwardSharePlayer</span>" <span style="color: red;">ToRole</span><span style="color: blue;">=</span>"<span style="color: blue;">AwardSharePlayer</span>" <span style="color: red;">FromRole</span><span style="color: blue;">=</span>"<span style="color: blue;">Player</span>" <span style="color: red;">Relationship</span><span style="color: blue;">=</span>"<span style="color: blue;">BaseballStatsModel.FK_AwardsSharePlayers_Player</span>"<span style="color: blue;">/&gt; &lt;</span><span style="color: #a31515;">NavigationProperty </span><span style="color: red;">Name</span><span style="color: blue;">=</span>"<span style="color: blue;">Batting</span>" <span style="color: red;">ToRole</span><span style="color: blue;">=</span>"<span style="color: blue;">Batting</span>" <span style="color: red;">FromRole</span><span style="color: blue;">=</span>"<span style="color: blue;">Player</span>" <span style="color: red;">Relationship</span><span style="color: blue;">=</span>"<span style="color: blue;">BaseballStatsModel.FK_Batting_Player</span>"<span style="color: blue;">/&gt; &lt;</span><span style="color: #a31515;">NavigationProperty </span><span style="color: red;">Name</span><span style="color: blue;">=</span>"<span style="color: blue;">BattingPost</span>" <span style="color: red;">ToRole</span><span style="color: blue;">=</span>"<span style="color: blue;">BattingPost</span>" <span style="color: red;">FromRole</span><span style="color: blue;">=</span>"<span style="color: blue;">Player</span>" <span style="color: red;">Relationship</span><span style="color: blue;">=</span>"<span style="color: blue;">BaseballStatsModel.FK_BattingPost_Player</span>"<span style="color: blue;">/&gt; &lt;</span><span style="color: #a31515;">NavigationProperty </span><span style="color: red;">Name</span><span style="color: blue;">=</span>"<span style="color: blue;">Fielding</span>" <span style="color: red;">ToRole</span><span style="color: blue;">=</span>"<span style="color: blue;">Fielding</span>" <span style="color: red;">FromRole</span><span style="color: blue;">=</span>"<span style="color: blue;">Player</span>" <span style="color: red;">Relationship</span><span style="color: blue;">=</span>"<span style="color: blue;">BaseballStatsModel.FK_Fielding_Player</span>"<span style="color: blue;">/&gt; &lt;</span><span style="color: #a31515;">NavigationProperty </span><span style="color: red;">Name</span><span style="color: blue;">=</span>"<span style="color: blue;">FieldingOF</span>" <span style="color: red;">ToRole</span><span style="color: blue;">=</span>"<span style="color: blue;">FieldingOF</span>" <span style="color: red;">FromRole</span><span style="color: blue;">=</span>"<span style="color: blue;">Player</span>" <span style="color: red;">Relationship</span><span style="color: blue;">=</span>"<span style="color: blue;">BaseballStatsModel.FK_FieldingOF_Player</span>"<span style="color: blue;">/&gt; &lt;</span><span style="color: #a31515;">NavigationProperty </span><span style="color: red;">Name</span><span style="color: blue;">=</span>"<span style="color: blue;">FieldingPost</span>" <span style="color: red;">ToRole</span><span style="color: blue;">=</span>"<span style="color: blue;">FieldingPost</span>" <span style="color: red;">FromRole</span><span style="color: blue;">=</span>"<span style="color: blue;">Player</span>" <span style="color: red;">Relationship</span><span style="color: blue;">=</span>"<span style="color: blue;">BaseballStatsModel.FK_FieldingPost_Player</span>"<span style="color: blue;">/&gt; &lt;</span><span style="color: #a31515;">NavigationProperty </span><span style="color: red;">Name</span><span style="color: blue;">=</span>"<span style="color: blue;">Pitching</span>" <span style="color: red;">ToRole</span><span style="color: blue;">=</span>"<span style="color: blue;">Pitching</span>" <span style="color: red;">FromRole</span><span style="color: blue;">=</span>"<span style="color: blue;">Player</span>" <span style="color: red;">Relationship</span><span style="color: blue;">=</span>"<span style="color: blue;">BaseballStatsModel.FK_Pitching_Player</span>"<span style="color: blue;">/&gt; &lt;</span><span style="color: #a31515;">NavigationProperty </span><span style="color: red;">Name</span><span style="color: blue;">=</span>"<span style="color: blue;">PitchingPost</span>" <span style="color: red;">ToRole</span><span style="color: blue;">=</span>"<span style="color: blue;">PitchingPost</span>" <span style="color: red;">FromRole</span><span style="color: blue;">=</span>"<span style="color: blue;">Player</span>" <span style="color: red;">Relationship</span><span style="color: blue;">=</span>"<span style="color: blue;">BaseballStatsModel.FK_PitchingPost_Player</span>"<span style="color: blue;">/&gt; &lt;/</span><span style="color: #a31515;">EntityType</span><span style="color: blue;">&gt; </span></pre>
<p>The OData feed can also contain <strong>Associations</strong> that define the connections (or roads from our earlier analogy) between the Entity Type and another Entity Type. An example would be the Association between a Baseball Player and his Batting Statistics. An Entity Type’s collection of Associations is called an Association Set and along with the Entity Set is assembled into an <strong>Entity Container</strong>. The Link or <strong>Navigation Property</strong> that makes up the Entity Type must act on behalf of a defined Association in the OData feed. The following is an example of what the Entity Container looks when querying the <strong>Service Metadata Document</strong>.</p>
<pre class="code"><span style="color: blue;">&lt;</span><span style="color: #a31515;">EntityContainer </span><span style="color: red;">Name</span><span style="color: blue;">=</span>"<span style="color: blue;">SolutionEntities</span>" <span style="color: red;">xmlns:p7</span><span style="color: blue;">=</span>"<span style="color: blue;">http://schemas.microsoft.com/ado/2009/02/edm/annotation</span>" <span style="color: red;">m:IsDefaultEntityContainer</span><span style="color: blue;">=</span>"<span style="color: blue;">true</span>" <span style="color: red;">p7:LazyLoadingEnabled</span><span style="color: blue;">=</span>"<span style="color: blue;">true</span>"<span style="color: blue;">&gt; &lt;</span><span style="color: #a31515;">EntitySet </span><span style="color: red;">Name</span><span style="color: blue;">=</span>"<span style="color: blue;">Entity1</span>" <span style="color: red;">EntityType</span><span style="color: blue;">=</span>"<span style="color: blue;">SolutionModel.Entity1</span>"<span style="color: blue;">/&gt; &lt;</span><span style="color: #a31515;">EntitySet </span><span style="color: red;">Name</span><span style="color: blue;">=</span>"<span style="color: blue;">Entity2</span>" <span style="color: red;">EntityType</span><span style="color: blue;">=</span>"<span style="color: blue;">SolutionModel.Entity2</span>"<span style="color: blue;">/&gt; </span>...
    <span style="color: blue;">&lt;</span><span style="color: #a31515;">EntitySet </span><span style="color: red;">Name</span><span style="color: blue;">=</span>"<span style="color: blue;">EntityN</span>" <span style="color: red;">EntityType</span><span style="color: blue;">=</span>"<span style="color: blue;">SolutionModel.EntityN</span>"<span style="color: blue;">/&gt; &lt;</span><span style="color: #a31515;">AssociationSet </span><span style="color: red;">Name</span><span style="color: blue;">=</span>"<span style="color: blue;">FK_Entity2_Entity1</span>" <span style="color: red;">Association</span><span style="color: blue;">=</span>"<span style="color: blue;">SolutionModel.FK_Entity2_Entity1</span>"<span style="color: blue;">&gt; &lt;</span><span style="color: #a31515;">End </span><span style="color: red;">Role</span><span style="color: blue;">=</span>"<span style="color: blue;">Entity2</span>" <span style="color: red;">EntitySet</span><span style="color: blue;">=</span>"<span style="color: blue;">Entity2</span>"<span style="color: blue;">/&gt; &lt;</span><span style="color: #a31515;">End </span><span style="color: red;">Role</span><span style="color: blue;">=</span>"<span style="color: blue;">Entity1</span>" <span style="color: red;">EntitySet</span><span style="color: blue;">=</span>"<span style="color: blue;">Entity1</span>"<span style="color: blue;">/&gt; &lt;/</span><span style="color: #a31515;">AssociationSet</span><span style="color: blue;">&gt; &lt;</span><span style="color: #a31515;">AssociationSet </span><span style="color: red;">Name</span><span style="color: blue;">=</span>"<span style="color: blue;">FK_Entity1_EntityN</span>" <span style="color: red;">Association</span><span style="color: blue;">=</span>"<span style="color: blue;">SolutionModel.FK_Entity1_EntityN</span>"<span style="color: blue;">&gt; &lt;</span><span style="color: #a31515;">End </span><span style="color: red;">Role</span><span style="color: blue;">=</span>"<span style="color: blue;">Entity1</span>" <span style="color: red;">EntitySet</span><span style="color: blue;">=</span>"<span style="color: blue;">Entity1</span>"<span style="color: blue;">/&gt; &lt;</span><span style="color: #a31515;">End </span><span style="color: red;">Role</span><span style="color: blue;">=</span>"<span style="color: blue;">EntityN</span>" <span style="color: red;">EntitySet</span><span style="color: blue;">=</span>"<span style="color: blue;">EntityN</span>"<span style="color: blue;">/&gt; &lt;/</span><span style="color: #a31515;">AssociationSet</span><span style="color: blue;">&gt; </span>...
    <span style="color: blue;">&lt;</span><span style="color: #a31515;">AssociationSet </span><span style="color: red;">Name</span><span style="color: blue;">=</span>"<span style="color: blue;">FK_Entity2_EntityN</span>" <span style="color: red;">Association</span><span style="color: blue;">=</span>"<span style="color: blue;">SolutionModel.FK_Entity2_EntityN</span>"<span style="color: blue;">&gt; &lt;</span><span style="color: #a31515;">End </span><span style="color: red;">Role</span><span style="color: blue;">=</span>"<span style="color: blue;">Entity2</span>" <span style="color: red;">EntitySet</span><span style="color: blue;">=</span>"<span style="color: blue;">Entity2</span>"<span style="color: blue;">/&gt; &lt;</span><span style="color: #a31515;">End </span><span style="color: red;">Role</span><span style="color: blue;">=</span>"<span style="color: blue;">EntityN</span>" <span style="color: red;">EntitySet</span><span style="color: blue;">=</span>"<span style="color: blue;">EntityN</span>"<span style="color: blue;">/&gt; &lt;/</span><span style="color: #a31515;">AssociationSet</span><span style="color: blue;">&gt; &lt;/</span><span style="color: #a31515;">EntityContainer</span><span style="color: blue;">&gt; </span></pre>
<p>A special type of structured types that can be in an OData feed is a <strong>Complex Type</strong>. The Complex Type is a collection of properties without a unique Key. This type can only be contained within an Entity Type as a property or live outside of all Entity Types as temporary data.</p>
<p>The last item that can be represented in the Entity Data Model is a <strong>Service Operation</strong>. We will look at the Service Operation later in the series. For now understand that Service Operations are functions that can be called on an OData feed. A Service Operation behaves similar to the Stored Procedures in a relational database.</p>
<p>We have looked at the Entity Data Model and what defines it in the world of OData. This will allow us to lay down a foundation for future blog posts in this series to explain the behaviors and results that we expect from our OData feeds.</p>
]]></content:encoded>
			<wfw:commentRss>http://chriswoodruff.com/2011/12/04/31-days-of-odata-day-3-odata-entity-data-model/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>31 Days of OData &#8211; Day 2 Data Types of OData</title>
		<link>http://chriswoodruff.com/2011/12/02/31-days-of-odata-day-2-data-types-of-odata/</link>
		<comments>http://chriswoodruff.com/2011/12/02/31-days-of-odata-day-2-data-types-of-odata/#comments</comments>
		<pubDate>Fri, 02 Dec 2011 20:00:00 +0000</pubDate>
		<dc:creator>cwoodruff</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[31 Days]]></category>
		<category><![CDATA[OData]]></category>

		<guid isPermaLink="false">http://chriswoodruff.com/2011/12/03/31-days-of-odata-day-2-data-types-of-odata/</guid>
		<description><![CDATA[Since data is the basis for all OData feeds it is natural to see then that describing the data that represents the types Entities with in the feed is important. It is not only important for the data but also for the metadata that plays a significant role in the OData protocol. The OData protocol]]></description>
			<content:encoded><![CDATA[<p><a href="http://chriswoodruff.com/wp-content/uploads/2011/12/OData-logo_bigger1.png"><img style="background-image: none; margin: 0px 5px 0px 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; padding-top: 0px; border: 0px;" title="OData-logo_bigger" src="http://chriswoodruff.com/wp-content/uploads/2011/12/OData-logo_bigger_thumb1.png" alt="OData-logo_bigger" width="73" height="73" align="left" border="0" /></a>Since data is the basis for all OData feeds it is natural to see then that describing the data that represents the types Entities with in the feed is important. It is not only important for the data but also for the metadata that plays a significant role in the OData protocol.</p>
<p>The OData protocol is a very structured standard and with it also come a set of primitive data types. Each data type has a distinct set of properties themselves and we will look at each and understand those characteristics. Let’s dig into the list shall we?</p>
<h3>What are the Data Types for OData?</h3>
<p>I will give the list of primitive data types that can be used with the OData protocol and additionally I will give some of the characteristics for each type. We all should know most of these data types but it will be a good refresher.</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top" bgcolor="#000000" width="158"><span style="color: #ffffff;">Primitive Types</span></td>
<td valign="top" bgcolor="#000000" width="158"><span style="color: #ffffff;">Description</span></td>
<td valign="top" bgcolor="#000000" width="158"><span style="color: #ffffff;">Notes</span></td>
<td valign="top" bgcolor="#000000" width="158"><span style="color: #ffffff;">Examples</span></td>
</tr>
<tr bgcolor="#cccccc">
<td valign="top" width="158">Null</td>
<td valign="top" width="158">Represents the absence of a value</td>
<td valign="top" width="158"></td>
<td valign="top" width="158">null</td>
</tr>
<tr>
<td valign="top" width="158">Edm.Binary</td>
<td valign="top" width="158">Represent fixed- or variable- length binary data</td>
<td valign="top" width="158">X and binary are case sensitive. Spaces are not allowed between binary and the quoted portion. Spaces are not allowed between X and the quoted portion. Odd pairs of hex digits are not allowed.</td>
<td valign="top" width="158">X&#8217;23AB&#8217;</td>
</tr>
<tr bgcolor="#cccccc">
<td valign="top" width="158">Edm.Boolean</td>
<td valign="top" width="158">Represents the mathematical concept of binary-valued logic</td>
<td valign="top" width="158"></td>
<td valign="top" width="158">Example 1: true</p>
<p>Example 2: false</td>
</tr>
<tr>
<td valign="top" width="158">Edm.Byte</td>
<td valign="top" width="158">Unsigned 8-bit integer value</td>
<td valign="top" width="158"></td>
<td valign="top" width="158">FF</td>
</tr>
<tr bgcolor="#cccccc">
<td valign="top" width="158">Edm.DateTime</td>
<td valign="top" width="158">Represents date and time with values ranging from 12:00:00 midnight, January 1, 1753 A.D. through 11:59:59 P.M, December 9999 A.D.</td>
<td valign="top" width="158">Spaces are not allowed between datetime and quoted portion. datetime is case-insensitive</td>
<td valign="top" width="158">datetime&#8217;2000-12-12T12:00&#8242;</td>
</tr>
<tr>
<td valign="top" width="158">Edm.Decimal</td>
<td valign="top" width="158">Represents numeric values with fixed precision and scale. This type can describe a numeric value ranging from negative 10^255 + 1 to positive 10^255 -1</td>
<td valign="top" width="158"></td>
<td valign="top" width="158">2.345M</td>
</tr>
<tr bgcolor="#cccccc">
<td valign="top" width="158">Edm.Double</td>
<td valign="top" width="158">Represents a floating point number with 15 digits precision that can represent values with approximate range of Â± 2.23e -308 through Â± 1.79e +308</td>
<td valign="top" width="158"></td>
<td valign="top" width="158">Example 1: 1E+10 Example 2: 2.029</p>
<p>Example 3: 2.0</td>
</tr>
<tr>
<td valign="top" width="158">Edm.Single</td>
<td valign="top" width="158">Represents a floating point number with 7 digits precision that can represent values with approximate range of Â± 1.18e -38 through Â± 3.40e +38</td>
<td valign="top" width="158"></td>
<td valign="top" width="158">2.0f</td>
</tr>
<tr bgcolor="#cccccc">
<td valign="top" width="158">Edm.Guid</td>
<td valign="top" width="158">Represents a 16-byte (128-bit) unique identifier value</td>
<td valign="top" width="158"></td>
<td valign="top" width="158">&#8217;12345678-aaaa-bbbb-cccc-ddddeeeeffff&#8217;</td>
</tr>
<tr>
<td valign="top" width="158">Edm.Int16</td>
<td valign="top" width="158">Represents a signed 16-bit integer value</td>
<td valign="top" width="158"></td>
<td valign="top" width="158">Example 1: 16</p>
<p>Example 2: -16</td>
</tr>
<tr bgcolor="#cccccc">
<td valign="top" width="158">Edm.Int32</td>
<td valign="top" width="158">Represents a signed 32-bit integer value</td>
<td valign="top" width="158"></td>
<td valign="top" width="158">Example 1: 32</p>
<p>Example 2: -32</td>
</tr>
<tr>
<td valign="top" width="158">Edm.Int64</td>
<td valign="top" width="158">Represents a signed 64-bit integer value</td>
<td valign="top" width="158"></td>
<td valign="top" width="158">Example 1: 64L</p>
<p>Example 2: -64L</td>
</tr>
<tr bgcolor="#cccccc">
<td valign="top" width="158">Edm.SByte</td>
<td valign="top" width="158">Represents a signed 8-bit integer value</td>
<td valign="top" width="158"></td>
<td valign="top" width="158">Example 1: 8</p>
<p>Example 2: -8</td>
</tr>
<tr>
<td valign="top" width="158">Edm.String</td>
<td valign="top" width="158">Represents fixed- or variable-length character data</td>
<td valign="top" width="158"></td>
<td valign="top" width="158">Example 1: &#8216;Hello OData&#8217;</td>
</tr>
<tr bgcolor="#cccccc">
<td valign="top" width="158">Edm.Time</td>
<td valign="top" width="158">Represents the time of day with values ranging from 0:00:00.x to 23:59:59.y, where x and y depend upon the precision</td>
<td valign="top" width="158"></td>
<td valign="top" width="158">Example 1: 13:20:00</td>
</tr>
<tr>
<td valign="top" width="158">Edm.DateTimeOffset</td>
<td valign="top" width="158">Represents date and time as an Offset in minutes from GMT, with values ranging from 12:00:00 midnight, January 1, 1753 A.D. through 11:59:59 P.M, December 9999 A.D</td>
<td valign="top" width="158"></td>
<td valign="top" width="158"></td>
</tr>
</tbody>
</table>
<h3>Where do the Data Types for OData come from?</h3>
<p>Where do the datatypes for OData originate is a great look at the history of OData and what other products helped shape the protocol. OData originated with Microsoft so first we will look at where most data resides when developing solutions on the Microsoft stack of tools and technologies: SQL Server. When the OData protocol was announced back in 2010 most of the data types used in Microsoft SQL Server 2008 could be used to represent data in an OData feed. It would only seem logical that a technology that was developed with an organization would be shaped and influenced by the tools at hand and OData is no exception.</p>
<p>But that is just the start. We must also look at the Entity Framework as another key influencer in the maturation of the OData protocol. If you notice in the table above the list of the data types all have the prefix “Edm.” associated. That comes from the Entity Framework to mean “Entity Data Model”. Why is this so? It could be that other data types will be allowed at some time and that some with the same literal name could be brought into the OData protocol specification but with slightly different characteristics. If that happened these new set of primitives could conflict with the existing data types (example could be datatypes from Oracle).</p>
<p>The OData team was smart enough to allow for this and started using prefixes that could distinguish possibly a different representation of a string by two different database products (example could be the maximum fixed length of a string). These new data types could be given their own prefix and happily live side by side with the original data types from SQL Server and Entity Framework.</p>
<h3>What about Spatial Data Types?</h3>
<p>The Spatial data types that first were brought to the Microsoft world in SQL Server 2008 are a new exciting feature of both the Entity Framework 4.0 product but also for OData. These new data types are so exciting that I will be spending an entire blog post covering these later in the month. I will update and link this blog post chapter to that future post so stay tuned.</p>
]]></content:encoded>
			<wfw:commentRss>http://chriswoodruff.com/2011/12/02/31-days-of-odata-day-2-data-types-of-odata/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>31 Days of OData &#8211; Day 1 Background of OData</title>
		<link>http://chriswoodruff.com/2011/12/01/31-days-of-odata-day-1-background-of-odata/</link>
		<comments>http://chriswoodruff.com/2011/12/01/31-days-of-odata-day-1-background-of-odata/#comments</comments>
		<pubDate>Thu, 01 Dec 2011 20:23:38 +0000</pubDate>
		<dc:creator>cwoodruff</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[31 Days]]></category>
		<category><![CDATA[OData]]></category>

		<guid isPermaLink="false">http://chriswoodruff.com/2011/12/01/31-days-of-odata-day-1-background-of-odata/</guid>
		<description><![CDATA[What is the Open Data Protocol? The official statement for Open Data Protocol (OData) is that is a Web protocol for querying and updating data that provides a way to unlock your data and free it from silos that exist in applications today. Really what that means is that we can select, save, delete and]]></description>
			<content:encoded><![CDATA[<h3><a href="http://chriswoodruff.com/wp-content/uploads/2011/12/OData-logo_bigger.png"><img style="background-image: none; border-right-width: 0px; margin: 0px 5px 0px 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="OData-logo_bigger" border="0" alt="OData-logo_bigger" align="left" src="http://chriswoodruff.com/wp-content/uploads/2011/12/OData-logo_bigger_thumb.png" width="73" height="73" /></a>What is the Open Data Protocol?</h3>
<p>The official statement for Open Data Protocol (OData) is that is a Web protocol for querying and updating data that provides a way to unlock your data and free it from silos that exist in applications today. Really what that means is that we can select, save, delete and update data from our applications just like we have been against SQL databases for years. The benefit is the ease of setting up and libraries that Microsoft has created for us the developers of Windows Phone 7 Mango apps. The benefit comes from the fact that OData has a standard that allows a clear understanding of the data due to the metadata from the feed.</p>
<p>Behind the scenes, we send OData requests to a web server that has the OData feed through HTTP calls using the protocol for OData. You can read more about OData <a href="http://odata.org" target="_blank">here</a>.</p>
<h3>Where did OData come from?</h3>
<p>OData started back in 2007 at the second Microsoft MIX conference. The announcement was an incubation project codenamed Astoria. The purpose of Project Astoria was to find a way to transport data across HTTP in order to architect and develop web based solutions more efficiently. Not until after the project had time to incubate did the OData see patterns occurring that led them to see the vision of the Open Data Protocol. The next big milestone was the 2010 Microsoft MIX Conference where OData was officially announced and proclaimed to the world as a new way to handle data. The rest is history.</p>
<h3>Building OData on the Shoulders of Web Protocols</h3>
<p>One of the great features of the OData protocol is the use of existing and mature standards. The OData team I feel did a great job identifying and using existing technologies to build upon. The following are the technologies, standards and/or existing protocols that were used in the development of OData:</p>
<ul>
<li>HTTP (<a href="http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol" target="_blank">Hypertext Transfer Protocol</a>) </li>
</ul>
<blockquote><p>Really nothing much can be done on the Internet without HTTP so why wouldn’t OData use HTTP for its transport? Most web developers know about HTTP (or should know) so I will not dull you with details.</p>
</blockquote>
<ul>
<li>Atom (<a href="http://en.wikipedia.org/wiki/Atom_(standard)" target="_blank">Atom Syndication Format</a>) </li>
</ul>
<blockquote><p>Most people know that Atom is used with RSS feeds to aggregate the content to others through HTTP. What you may not have known is how similar a RSS feed is to a database.</p>
</blockquote>
<ul>
<ul>
<li>The RSS Feed is a collection of blog posts which can be seen as a Database and a table. Databases I know contain multiple tables so that is that are where OData builds it beyond Atom where it has multiple collections of typed Entities. </li>
<li>A Blog post inside a RSS feed is similar to a record in a Database table. The blog post has properties like Title, Body and Published Date. These properties can be seen as columns of a database table. </li>
</ul>
<li>REST (<a href="http://en.wikipedia.org/wiki/REST" target="_blank">Representational state transfer</a>) </li>
</ul>
<blockquote><p>OData was developed to follow the definition of REST. A RESTful web service or RESTful web API is a web service implemented through HTTP and the principles of REST. It is a collection of resources, with four defined aspects:</p>
</blockquote>
<ul>
<ul>
<li>the base URI for the web service, such as http://example.com/resources/ </li>
<li>the Internet media type of the data supported by the web service. This is often JSON, XML or YAML but can be any other valid Internet media type. </li>
<li>the set of operations supported by the web service using HTTP methods (e.g., GET, PUT, POST, or DELETE). </li>
<li>The API must be hypertext driven. </li>
</ul>
</ul>
<h3>What will come with the OData Blog Series?</h3>
<p>I hope this blog series will give the community and my readers a new perspective of the OData protocol. We will cover in depth the different areas of the protocols such as datatypes, query options and vocabularies. At the end of the series I hope to have answered many of your questions and also started getting you to identify areas and solutions where OData could add benefits to your solutions, services and products.</p>
<p>I also hope it will raise more questions about OData that I or others can answer and generate new ideas that can add more appeal and features to this exciting protocol.</p>
<h3>Being a Data Experience (DX) Expert</h3>
<p>At the end of the blog series I hope I will also make more of you Data Experience Experts. That is a new term I think I coined some time ago. What is a Data Experience Expert? Well User Experience is defined in <a href="http://en.wikipedia.org/wiki/User_experience" target="_blank">Wikipedia</a> as:</p>
<p><i>User experience (UX) is the way a person feels about using a product, system or service. User experience highlights the experiential, affective, meaningful and valuable aspects of human-computer interaction and product ownership, but it also includes a person’s perceptions of the practical aspects such as utility, ease of use and efficiency of the system.</i></p>
<p>Based on the UX definition we could define DX as:</p>
<p><i>Data experience (DX) is the way a person feels about using data. Data experience highlights the experiential, affective, meaningful and valuable aspects of data interchanges, but it also includes a person’s perceptions of the practical aspects such as ease of use and efficiency of the data and data transportation.</i></p>
<p>I do hope you will find this definition valuable as you gain more experience with OData and other Data technologies to also pin the title of DX expert to your resume.</p>
]]></content:encoded>
			<wfw:commentRss>http://chriswoodruff.com/2011/12/01/31-days-of-odata-day-1-background-of-odata/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Announcing: The 31 Days of OData Blog Series</title>
		<link>http://chriswoodruff.com/2011/11/19/announcing-the-31-days-of-odata-blog-series/</link>
		<comments>http://chriswoodruff.com/2011/11/19/announcing-the-31-days-of-odata-blog-series/#comments</comments>
		<pubDate>Sat, 19 Nov 2011 21:46:20 +0000</pubDate>
		<dc:creator>cwoodruff</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[31 Days]]></category>
		<category><![CDATA[OData]]></category>

		<guid isPermaLink="false">http://chriswoodruff.com/2011/11/19/announcing-the-31-days-of-odata-blog-series/</guid>
		<description><![CDATA[My friend and Microsoft Developer Evangelist Jeff Blankenburg has done 3 “31 days” blog extravaganzas (Silverlight, Windows Phone and now Windows Phone Mango). After talking to Jeff, I think I am crazy enough to do one of these blog series myself and will be doing the 31 Days of OData in December. Each blog post]]></description>
			<content:encoded><![CDATA[<p><a href="http://chriswoodruff.com/wp-content/uploads/2011/11/OData-logo_bigger.png"><img style="background-image: none; margin: 0px 5px 0px 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; padding-top: 0px; border-width: 0px;" title="OData-logo_bigger" src="http://chriswoodruff.com/wp-content/uploads/2011/11/OData-logo_bigger_thumb.png" alt="OData-logo_bigger" width="73" height="73" align="left" border="0" /></a>My friend and Microsoft Developer Evangelist <a href="http://www.jeffblankenburg.com/" target="_blank">Jeff Blankenburg</a> has done 3 “31 days” blog extravaganzas (<a href="http://www.jeffblankenburg.com/category/31daysofsilverlight/" target="_blank">Silverlight</a>, <a href="http://www.jeffblankenburg.com/category/31daysofwindowsphone/" target="_blank">Windows Phone</a> and now <a href="http://www.jeffblankenburg.com/category/31-days-of-mango/" target="_blank">Windows Phone Mango</a>). After talking to Jeff, I think I am crazy enough to do one of these blog series myself and will be doing the 31 Days of OData in December. Each blog post will cover a topic in the OData protocol. I will not be covering the implementation of OData using a specific technology like WCF Data Services. These blog post will cover only the protocol itself and I hope to shed new light on the protocol for technologists in the community.</p>
<p>Wish me luck! (Maybe in <span style="text-decoration: line-through;">January</span> April 2012 I will do another 31 Days and cover Producing and Consuming OData topics.)</p>
<table width="517" border="1" cellspacing="0" cellpadding="2">
<tbody>
<tr>
<td valign="top" width="133">Date</td>
<td valign="top" width="382">Title</td>
</tr>
<tr>
<td valign="top" width="133">December 1</td>
<td valign="top" width="382"><a href="http://chriswoodruff.com/2011/12/01/31-days-of-odata-day-1-background-of-odata/">Day 1: Background of OData</a></td>
</tr>
<tr>
<td valign="top" width="133">December 2</td>
<td valign="top" width="382"><a href="http://chriswoodruff.com/2011/12/02/31-days-of-odata-day-2-data-types-of-odata/">Day 2: Data Types in OData</a></td>
</tr>
<tr>
<td valign="top" width="133">December 3</td>
<td valign="top" width="382"><a href="http://chriswoodruff.com/2011/12/04/31-days-of-odata-day-3-odata-entity-data-model/">Day 3: OData Entity Data Model</a></td>
</tr>
<tr>
<td valign="top" width="133">December 4</td>
<td valign="top" width="382"><a href="http://chriswoodruff.com/2011/12/09/31-days-of-odata-day-4-metadata-in-odata/">Day 4: Metadata in OData</a></td>
</tr>
<tr>
<td valign="top" width="133">December 5</td>
<td valign="top" width="382"><a href="http://chriswoodruff.com/2011/12/12/31-days-of-odata-day-5-addressing-entities-in-odata/">Day 5: Addressing Entities in OData</a></td>
</tr>
<tr>
<td valign="top" width="133"></td>
<td valign="top" width="382">Day 6: Addressing Links between Entities in OData</td>
</tr>
<tr>
<td valign="top" width="133"></td>
<td valign="top" width="382">Day 7: OrderBy Query Option in OData</td>
</tr>
<tr>
<td valign="top" width="133"></td>
<td valign="top" width="382">Day 8: Filter Query Option in OData</td>
</tr>
<tr>
<td valign="top" width="133"></td>
<td valign="top" width="382">Day 9: Expand Query Option in OData</td>
</tr>
<tr>
<td valign="top" width="133"></td>
<td valign="top" width="382">Day 10: Select Query Option in OData</td>
</tr>
<tr>
<td valign="top" width="133"></td>
<td valign="top" width="382">Day 11: Top Query Option in OData</td>
</tr>
<tr>
<td valign="top" width="133"></td>
<td valign="top" width="382">Day 12: Skip Query Option in OData</td>
</tr>
<tr>
<td valign="top" width="133"></td>
<td valign="top" width="382">Day 13: Format Query Option in OData</td>
</tr>
<tr>
<td valign="top" width="133"></td>
<td valign="top" width="382">Day 14: Inlinecount Query Option in OData</td>
</tr>
<tr>
<td valign="top" width="133"></td>
<td valign="top" width="382">Day 15: Custom Query Options in OData</td>
</tr>
<tr>
<td valign="top" width="133"></td>
<td valign="top" width="382">Day 16: Service Operations in OData</td>
</tr>
<tr>
<td valign="top" width="133"></td>
<td valign="top" width="382">Day 17: Error Conditions in OData</td>
</tr>
<tr>
<td valign="top" width="133"></td>
<td valign="top" width="382">Day 18: Return Formats in OData</td>
</tr>
<tr>
<td valign="top" width="133"></td>
<td valign="top" width="382">Day 19: Versioning in OData</td>
</tr>
<tr>
<td valign="top" width="133"></td>
<td valign="top" width="382">Day 20: Batch Processing in OData</td>
</tr>
<tr>
<td valign="top" width="133"></td>
<td valign="top" width="382">Day 21: Retrieving Data in OData</td>
</tr>
<tr>
<td valign="top" width="133"></td>
<td valign="top" width="382">Day 22: Creating Entities in OData</td>
</tr>
<tr>
<td valign="top" width="133"></td>
<td valign="top" width="382">Day 23: Updating Entities and Entity Properties in OData</td>
</tr>
<tr>
<td valign="top" width="133"></td>
<td valign="top" width="382">Day 24: Deleting Entities in OData</td>
</tr>
<tr>
<td valign="top" width="133"></td>
<td valign="top" width="382">Day 25: Actions in OData</td>
</tr>
<tr>
<td valign="top" width="133"></td>
<td valign="top" width="382">Day 26: Manipulating Links between Entities in OData</td>
</tr>
<tr>
<td valign="top" width="133"></td>
<td valign="top" width="382">Day 27: AtomPub Return Format in OData</td>
</tr>
<tr>
<td valign="top" width="133"></td>
<td valign="top" width="382">Day 28: Json Return Format in OData</td>
</tr>
<tr>
<td valign="top" width="133"></td>
<td valign="top" width="382">Day 29: Vocabularies in OData</td>
</tr>
<tr>
<td valign="top" width="133"></td>
<td valign="top" width="382">Day 30: Geospatial in OData</td>
</tr>
<tr>
<td valign="top" width="133"></td>
<td valign="top" width="382">Day 31: The future of the OData Protocol</td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://chriswoodruff.com/2011/11/19/announcing-the-31-days-of-odata-blog-series/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>How to add a Custom Ringtone to your Windows Phone 7 Mango phone</title>
		<link>http://chriswoodruff.com/2011/11/10/how-to-add-a-custom-ringtone-to-your-windows-phone-7-mango-phone/</link>
		<comments>http://chriswoodruff.com/2011/11/10/how-to-add-a-custom-ringtone-to-your-windows-phone-7-mango-phone/#comments</comments>
		<pubDate>Thu, 10 Nov 2011 01:38:39 +0000</pubDate>
		<dc:creator>cwoodruff</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[ringtones]]></category>
		<category><![CDATA[Windows Phone 7]]></category>
		<category><![CDATA[Zune]]></category>

		<guid isPermaLink="false">http://chriswoodruff.com/2011/11/10/how-to-add-a-custom-ringtone-to-your-windows-phone-7-mango-phone/</guid>
		<description><![CDATA[We have all wanted to have custom ringtones in Windows Phone 7 since it was first released but now we can! The Windows Phone 7 Mango release offers users to add and quickly get ringtones on their phones. Example is the Deep Fried Bytes ringtone on our podcast site here. Download the mp3 to the]]></description>
			<content:encoded><![CDATA[<p>We have all wanted to have custom ringtones in Windows Phone 7 since it was first released but now we can! The Windows Phone 7 Mango release offers users to add and quickly get ringtones on their phones.</p>
<p>Example is the Deep Fried Bytes ringtone on our podcast site <a href="http://files.deepfriedbytes.com/ringtones/DFB_Ringtone.mp3" target="_blank">here</a>. Download the mp3 to the root of your music folder set up for your Zune Software.</p>
<p><a href="http://chriswoodruff.com/wp-content/uploads/2011/11/image.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://chriswoodruff.com/wp-content/uploads/2011/11/image_thumb.png" width="324" height="370" /></a></p>
<p>Next open Zune Software and you should find the mp3 located in your music collection.</p>
<p><a href="http://chriswoodruff.com/wp-content/uploads/2011/11/image1.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://chriswoodruff.com/wp-content/uploads/2011/11/image_thumb1.png" width="336" height="179" /></a></p>
<p>Right click on the mp3 inside Zune Software&#160; and choose Edit to change the metadata for the mp3. Set the Genre to “Ringtone”</p>
<p><a href="http://chriswoodruff.com/wp-content/uploads/2011/11/image2.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://chriswoodruff.com/wp-content/uploads/2011/11/image_thumb2.png" width="422" height="222" /></a></p>
<p>Finally press OK and drag the mp3 to your phone inside Zune Software, allow to sync and you should have the file to be an option for your Windows Phone 7 Mango device. Happy Ringtones!!</p>
<p><a href="http://chriswoodruff.com/wp-content/uploads/2011/11/image3.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://chriswoodruff.com/wp-content/uploads/2011/11/image_thumb3.png" width="244" height="218" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://chriswoodruff.com/2011/11/10/how-to-add-a-custom-ringtone-to-your-windows-phone-7-mango-phone/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
<enclosure url="http://files.deepfriedbytes.com/ringtones/DFB_Ringtone.mp3" length="782346" type="audio/mpeg" />
		</item>
		<item>
		<title>Windows 8 Is Not Really About the Tablet (in the long run)</title>
		<link>http://chriswoodruff.com/2011/10/04/windows-8-is-not-really-about-the-tablet-in-the-long-run/</link>
		<comments>http://chriswoodruff.com/2011/10/04/windows-8-is-not-really-about-the-tablet-in-the-long-run/#comments</comments>
		<pubDate>Tue, 04 Oct 2011 02:30:10 +0000</pubDate>
		<dc:creator>cwoodruff</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Prediction]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://chriswoodruff.com/2011/10/04/windows-8-is-not-really-about-the-tablet-in-the-long-run/</guid>
		<description><![CDATA[I was at the BUILD conference last month and spent a lot of time chatting and debating with many of the attendees and also with some Microsoft employees. In the end I think Windows 8 is beyond the tablet with ARM CPU support and better kernel features. I know these are not sexy but they]]></description>
			<content:encoded><![CDATA[<p>I was at the BUILD conference last month and spent a lot of time chatting and debating with many of the attendees and also with some Microsoft employees. In the end I think Windows 8 is beyond the tablet with ARM CPU support and better kernel features. I know these are not sexy but they will get Windows on all devices and across all platforms. The key to this all is that we will have one kernel to develop against for everything from phones to the XBox on our TV&#8217;s. We will have the ability to develop great UX without the issues of different OS’s like in the past with Windows CE.</p>
<p>We will see a future where this one kernel will be in all places where we need it: from cars to the Cloud. In the short term, the key is to fight off the iPad and Android tablet competition but we all need to look beyond this current consumer buzz and look at where Microsoft is taking us for the long marathon. Do I think there is a vision that Microsoft is not vocalizing yet? I do and this has been discussed with Windows on 3 Screens. Not much is heard of this decree these days but if we look at the OS for each screen in the past it was Windows (desktop), Windows CE (embedded and mobile) and finally a custom OS for XBox360. This will be streamlined into a new kernel that will appear with Windows 8. The Windows 8 kernel will allow developers, OEM’s and ISV’s the ability to exploit all types of device features and capabilities to the same software.</p>
<p>In 10 years do I think people will look back and see Windows 8 a great Microsoft release? Yes but I think it will be looked at the day when a single kernel unified the developer and hardware makers under one banner.</p>
]]></content:encoded>
			<wfw:commentRss>http://chriswoodruff.com/2011/10/04/windows-8-is-not-really-about-the-tablet-in-the-long-run/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Post-Thanksgiving Florida Mobility/Windows Phone Speaking Tour</title>
		<link>http://chriswoodruff.com/2011/09/26/post-thanksgiving-florida-mobilitywindows-phone-speaking-tour/</link>
		<comments>http://chriswoodruff.com/2011/09/26/post-thanksgiving-florida-mobilitywindows-phone-speaking-tour/#comments</comments>
		<pubDate>Mon, 26 Sep 2011 19:31:44 +0000</pubDate>
		<dc:creator>cwoodruff</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Mobility]]></category>
		<category><![CDATA[OData]]></category>
		<category><![CDATA[Speaking]]></category>
		<category><![CDATA[Windows Phone 7]]></category>

		<guid isPermaLink="false">http://chriswoodruff.com/2011/09/26/post-thanksgiving-florida-mobilitywindows-phone-speaking-tour/</guid>
		<description><![CDATA[Some of the great people in Central Florida asked me to speak on some Mobility, Data and Windows Phone topics the week after Thanksgiving. Seeing that I live in Michigan and the weather after Thanksgiving starts to get cold and we may even get some lake-effect snow I jumped on to speak to the Florida]]></description>
			<content:encoded><![CDATA[<p><img src="http://4.bp.blogspot.com/_HT-ZgsF9Z_Y/TCQL_nYTeKI/AAAAAAAAAR0/JstbH98lIHA/s1600/florida.jpg" width="240" height="152" />Some of the great people in Central Florida asked me to speak on some Mobility, Data and Windows Phone topics the week after Thanksgiving. Seeing that I live in Michigan and the weather after Thanksgiving starts to get cold and we may even get some <a href="http://en.wikipedia.org/wiki/Lake-effect_snow" target="_blank">lake-effect snow</a> I jumped on to speak to the Florida developers. After a week of chatting with the user groups leaders we have the schedule set and I am looking forward to meeting as many greats Florida devs.</p>
<ul>
<li>Monday November 28 @ 6:30PM – <a href="http://wp7ug.com/" target="_blank">Tampa Wp7 User Group</a> </li>
<li>Tuesday November 29 – <a href="http://www.lakelandug.net/" target="_blank">Lakeland .NET User Group</a> </li>
<li>Wednesday November 30 – <a href="http://sarasotadev.net/" target="_blank">Sarasota .NET Developers Group</a> </li>
<li>Thursday December 1 – <a href="http://swfldev.net" target="_blank">SW Florida .Net Developers Group</a> </li>
</ul>
<p>I will be updating this blog with more details about each speaking meeting.</p>
]]></content:encoded>
			<wfw:commentRss>http://chriswoodruff.com/2011/09/26/post-thanksgiving-florida-mobilitywindows-phone-speaking-tour/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Microsoft //BUILD Conference Webinar #4 &#8211; How Windows 8 Will Leverage Windows Azure</title>
		<link>http://chriswoodruff.com/2011/09/23/microsoft-build-conference-webinar-4-how-windows-8-will-leverage-windows-azure/</link>
		<comments>http://chriswoodruff.com/2011/09/23/microsoft-build-conference-webinar-4-how-windows-8-will-leverage-windows-azure/#comments</comments>
		<pubDate>Fri, 23 Sep 2011 00:04:33 +0000</pubDate>
		<dc:creator>cwoodruff</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Azure]]></category>
		<category><![CDATA[windows]]></category>
		<category><![CDATA[windows 8]]></category>
		<category><![CDATA[windows server 8]]></category>

		<guid isPermaLink="false">http://chriswoodruff.com/2011/09/23/microsoft-build-conference-webinar-4-how-windows-8-will-leverage-windows-azure/</guid>
		<description><![CDATA[Date: October 20, 2011 Time: 1:00-2:00 PM EST Register Now! http://microsoftbuild4.eventbrite.com/ During the week of September 12, 2011, Microsoft announced ground-breaking news at their BUILD conference in Anaheim, CA. Much was learned from Microsoft in regards to their Cloud strategies. The secret to this new revolutionary Windows Operating System is that the Cloud is integrated]]></description>
			<content:encoded><![CDATA[<p><strong>Date</strong>: October 20, 2011</p>
<p><strong>Time</strong>: 1:00-2:00 PM EST</p>
<p><strong>Register Now!</strong> <a href="http://microsoftbuild4.eventbrite.com/" target="_blank">http://microsoftbuild4.eventbrite.com/</a></p>
<p><a href="http://blogs.perficient.com/microsoft/files/2011/09/microsoftpic1.jpg"><img style="margin: 0px 5px 0px 0px" title="microsoftpic" border="0" alt="microsoftpic" align="left" src="http://blogs.perficient.com/microsoft/files/2011/09/microsoftpic_thumb1.jpg" width="240" height="144" /></a></p>
<p>During the week of September 12, 2011, Microsoft announced ground-breaking news at their BUILD conference in Anaheim, CA. Much was learned from Microsoft in regards to their Cloud strategies.</p>
<p>The secret to this new revolutionary Windows Operating System is that the Cloud is integrated into Windows 8 and Windows 8 Server. Windows Azure has been a tool in developers and IT Pros belts to build great solutions on top of Windows in the past. Now Microsoft has placed those features natively into Windows 8 and Windows Server 8 to have even better Cloud extensions and interoperability.</p>
<p>I attended the BUILD conference and many of the Windows 8 developers sessions regarding this exciting upcoming Windows release. In the fourth and final webinar in this four-part series, I will outline the new Windows Azure features and how Windows 8 and Windows Server 8 will give developers, IT Pros and Windows users the benefits and features of leveraging Azure in their solutions.</p>
]]></content:encoded>
			<wfw:commentRss>http://chriswoodruff.com/2011/09/23/microsoft-build-conference-webinar-4-how-windows-8-will-leverage-windows-azure/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

