<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://interactiveasp.net/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Nates Stuff : Presentations, ADO.NET Entity Framework</title><link>http://interactiveasp.net/blogs/natesstuff/archive/tags/Presentations/ADO.NET+Entity+Framework/default.aspx</link><description>Tags: Presentations, ADO.NET Entity Framework</description><dc:language>en</dc:language><generator>CommunityServer 2008 (Build: 30417.1769)</generator><item><title>LINQ to Entities Example Queries</title><link>http://interactiveasp.net/blogs/natesstuff/archive/2008/11/02/linq-to-entities-example-queries.aspx</link><pubDate>Sun, 02 Nov 2008 23:06:00 GMT</pubDate><guid isPermaLink="false">b80005ef-4071-4968-b08e-765d7d71b33e:128</guid><dc:creator>Nathan Zaugg</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://interactiveasp.net/blogs/natesstuff/rsscomments.aspx?PostID=128</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://interactiveasp.net/blogs/natesstuff/commentapi.aspx?PostID=128</wfw:comment><comments>http://interactiveasp.net/blogs/natesstuff/archive/2008/11/02/linq-to-entities-example-queries.aspx#comments</comments><description>&lt;p&gt;&lt;img border="0" align="left" width="142" src="http://interactiveasp.net/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/natesstuff/coding_5F00_camper_5F00_3.jpg" alt="coding_camper" height="104" style="border-right: 0px; border-top: 0px; margin: 0px 10px 5px 0px; border-left: 0px; border-bottom: 0px" /&gt; Here are the examples I used during my LINQ to Entities presentation.&amp;nbsp; They show how to use the EntityClient, ObjectQuery, and LINQ to Entities queries.&amp;nbsp; All examples are built using a 1:1 mapping to the Adventure Works database that had been slightly modified.&amp;nbsp; The Object Services with Lazy Loading Example shows some how to debug these queries.&lt;/p&gt;
&lt;h3&gt;Entity Client Example&lt;/h3&gt;
&lt;blockquote&gt;
&lt;pre class="code"&gt;&lt;span style="color: green"&gt;// Entity Client &amp;amp; Entity SQL
&lt;/span&gt;&lt;span style="color: blue"&gt;using &lt;/span&gt;(&lt;span style="color: #2b91af"&gt;EntityConnection &lt;/span&gt;conn = &lt;br /&gt;       &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;EntityConnection&lt;/span&gt;(&lt;span style="color: #a31515"&gt;"Name=AdventureWorksEntities"&lt;/span&gt;)) {
    conn.Open();
    &lt;span style="color: #2b91af"&gt;EntityCommand &lt;/span&gt;cmd = conn.CreateCommand();
    cmd.CommandText = &lt;span style="color: #a31515"&gt;"SELECT VALUE c FROM &lt;br /&gt;           AdventureWorksEntities.Customer AS &lt;br /&gt;            c WHERE c.State = @state"&lt;/span&gt;;
    cmd.Parameters.AddWithValue(&lt;span style="color: #a31515"&gt;"state"&lt;/span&gt;, &lt;span style="color: #a31515"&gt;"UT"&lt;/span&gt;);

    &lt;span style="color: #2b91af"&gt;DbDataReader &lt;/span&gt;rdr = cmd.ExecuteReader(&lt;br /&gt;          &lt;span style="color: #2b91af"&gt;CommandBehavior&lt;/span&gt;.SequentialAccess);
    &lt;span style="color: blue"&gt;while &lt;/span&gt;(rdr.Read()) {
        &lt;span style="color: #2b91af"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color: blue"&gt;string&lt;/span&gt;.Format(&lt;span style="color: #a31515"&gt;"Company Name: &lt;br /&gt;              {0}\tCompany City: {1}"&lt;/span&gt;, &lt;br /&gt;              rdr[&lt;span style="color: #a31515"&gt;"CompanyName"&lt;/span&gt;], rdr[&lt;span style="color: #a31515"&gt;"City"&lt;/span&gt;]));
    }
}&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;h3&gt;Object Services Query Example&lt;/h3&gt;
&lt;blockquote&gt;
&lt;pre class="code"&gt;&lt;span style="color: green"&gt;// Object Services &amp;amp; Entity SQL
&lt;/span&gt;&lt;span style="color: blue"&gt;using &lt;/span&gt;(&lt;span style="color: #2b91af"&gt;AdventureWorksEntities &lt;/span&gt;data = &lt;br /&gt;     &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;AdventureWorksEntities&lt;/span&gt;()) {
    &lt;span style="color: #2b91af"&gt;ObjectQuery&lt;/span&gt;&amp;lt;&lt;span style="color: #2b91af"&gt;Customer&lt;/span&gt;&amp;gt; custs = data.CreateQuery&amp;lt;&lt;span style="color: #2b91af"&gt;Customer&lt;/span&gt;&amp;gt;(
        &lt;span style="color: #a31515"&gt;"SELECT VALUE c FROM Customer AS c WHERE c.Address.City = @city"&lt;/span&gt;, 
        &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;ObjectParameter&lt;/span&gt;(&lt;span style="color: #a31515"&gt;"city"&lt;/span&gt;, &lt;span style="color: #a31515"&gt;"Salt Lake City"&lt;/span&gt;));

    &lt;span style="color: blue"&gt;foreach &lt;/span&gt;(&lt;span style="color: #2b91af"&gt;Customer &lt;/span&gt;cust &lt;span style="color: blue"&gt;in &lt;/span&gt;custs) {
        &lt;span style="color: #2b91af"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color: #a31515"&gt;"Company: " &lt;/span&gt;+ cust.CompanyName);
    }
}&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;h3&gt;Object Services Query with Eager Loading Example&lt;/h3&gt;
&lt;blockquote&gt;
&lt;pre class="code"&gt;&lt;span style="color: green"&gt;// Eager Loading with Object Services
&lt;/span&gt;&lt;span style="color: blue"&gt;using &lt;/span&gt;(&lt;span style="color: #2b91af"&gt;AdventureWorksEntities &lt;/span&gt;data = &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;AdventureWorksEntities&lt;/span&gt;()) {
    &lt;span style="color: #2b91af"&gt;ObjectQuery&lt;/span&gt;&amp;lt;&lt;span style="color: #2b91af"&gt;Customer&lt;/span&gt;&amp;gt; custs = data.CreateQuery&amp;lt;&lt;span style="color: #2b91af"&gt;Customer&lt;/span&gt;&amp;gt;(
        &lt;span style="color: #a31515"&gt;"SELECT VALUE c FROM Customer AS c WHERE c.State = @state"&lt;/span&gt;,
        &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;ObjectParameter&lt;/span&gt;(&lt;span style="color: #a31515"&gt;"state"&lt;/span&gt;, &lt;span style="color: #a31515"&gt;"UT"&lt;/span&gt;)).Include(&lt;span style="color: #a31515"&gt;"SalesOrderHeader"&lt;/span&gt;);


    &lt;span style="color: blue"&gt;foreach &lt;/span&gt;(&lt;span style="color: #2b91af"&gt;Customer &lt;/span&gt;cust &lt;span style="color: blue"&gt;in &lt;/span&gt;custs) {
        &lt;span style="color: #2b91af"&gt;SalesOrderHeader &lt;/span&gt;sales = cust.SalesOrderHeader.FirstOrDefault();
        &lt;span style="color: blue"&gt;string &lt;/span&gt;str = (sales == &lt;span style="color: blue"&gt;null&lt;/span&gt;) ? &lt;span style="color: #a31515"&gt;"none" &lt;/span&gt;: sales.OrderDate&lt;br /&gt;             .ToShortDateString();
        &lt;span style="color: #2b91af"&gt;Console&lt;/span&gt;.WriteLine(
            &lt;span style="color: blue"&gt;string&lt;/span&gt;.Format(&lt;span style="color: #a31515"&gt;"Company: {0}\tOrder: {1}"&lt;/span&gt;, &lt;br /&gt;                 cust.CompanyName, str));
    }
}&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;/blockquote&gt;
&lt;h3&gt;Object Services Query with Lazy Loading Example&lt;/h3&gt;
&lt;blockquote&gt;
&lt;pre class="code"&gt;&lt;span style="color: green"&gt;// Lazy Loading with Object Services
&lt;/span&gt;&lt;span style="color: blue"&gt;using &lt;/span&gt;(&lt;span style="color: #2b91af"&gt;AdventureWorksEntities &lt;/span&gt;data = &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;AdventureWorksEntities&lt;/span&gt;()) {
    &lt;span style="color: #2b91af"&gt;ObjectQuery&lt;/span&gt;&amp;lt;&lt;span style="color: #2b91af"&gt;Customer&lt;/span&gt;&amp;gt; custs = data.CreateQuery&amp;lt;&lt;span style="color: #2b91af"&gt;Customer&lt;/span&gt;&amp;gt;(
        &lt;span style="color: #a31515"&gt;"SELECT VALUE c FROM Customer AS c WHERE c.State = @state"&lt;/span&gt;,
        &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;ObjectParameter&lt;/span&gt;(&lt;span style="color: #a31515"&gt;"state"&lt;/span&gt;, &lt;span style="color: #a31515"&gt;"UT"&lt;/span&gt;));

    &lt;span style="color: #2b91af"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color: #a31515"&gt;"DEBUG: " &lt;/span&gt;+ custs.ToTraceString());

    &lt;span style="color: blue"&gt;foreach &lt;/span&gt;(&lt;span style="color: #2b91af"&gt;Customer &lt;/span&gt;cust &lt;span style="color: blue"&gt;in &lt;/span&gt;custs) {
        &lt;span style="color: blue"&gt;if &lt;/span&gt;(!cust.SalesOrderHeader.IsLoaded)
            cust.SalesOrderHeader.Load();

        &lt;span style="color: #2b91af"&gt;SalesOrderHeader &lt;/span&gt;sales = cust.SalesOrderHeader.FirstOrDefault();
        &lt;span style="color: blue"&gt;string &lt;/span&gt;str = (sales == &lt;span style="color: blue"&gt;null&lt;/span&gt;) ? &lt;span style="color: #a31515"&gt;"none" &lt;/span&gt;: sales.OrderDate&lt;br /&gt;               .ToShortDateString();
        &lt;span style="color: #2b91af"&gt;Console&lt;/span&gt;.WriteLine(
            &lt;span style="color: blue"&gt;string&lt;/span&gt;.Format(&lt;span style="color: #a31515"&gt;"Company: {0}\tOrder: {1}"&lt;/span&gt;, &lt;br /&gt;            cust.CompanyName, str));
    }
}&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;LINQ to Entities Query Example&lt;/h3&gt;
&lt;blockquote&gt;
&lt;pre class="code"&gt;&lt;span style="color: green"&gt;// LINQ to ENTIES (Lazy Loading)
&lt;/span&gt;&lt;span style="color: blue"&gt;using &lt;/span&gt;(&lt;span style="color: #2b91af"&gt;AdventureWorksEntities &lt;/span&gt;data = &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;AdventureWorksEntities&lt;/span&gt;()) {

    &lt;span style="color: blue"&gt;var &lt;/span&gt;custquery = &lt;span style="color: blue"&gt;from &lt;/span&gt;d &lt;span style="color: blue"&gt;in &lt;/span&gt;data.Customer
                &lt;span style="color: blue"&gt;where &lt;/span&gt;d.State == &lt;span style="color: #a31515"&gt;"UT"
                &lt;/span&gt;&lt;span style="color: blue"&gt;select &lt;/span&gt;d;

    &lt;span style="color: blue"&gt;foreach &lt;/span&gt;(&lt;span style="color: #2b91af"&gt;Customer &lt;/span&gt;cust &lt;span style="color: blue"&gt;in &lt;/span&gt;custquery) {
        &lt;span style="color: blue"&gt;if &lt;/span&gt;( !cust.SalesOrderHeader.IsLoaded )
            cust.SalesOrderHeader.Load();
        &lt;span style="color: #2b91af"&gt;SalesOrderHeader &lt;/span&gt;sales = cust.SalesOrderHeader&lt;br /&gt;                .FirstOrDefault();
        &lt;span style="color: blue"&gt;string &lt;/span&gt;str = (sales == &lt;span style="color: blue"&gt;null&lt;/span&gt;) ? &lt;span style="color: #a31515"&gt;"none" &lt;/span&gt;: sales.OrderDate&lt;br /&gt;               .ToShortDateString();
        &lt;span style="color: #2b91af"&gt;Console&lt;/span&gt;.WriteLine(
            &lt;span style="color: blue"&gt;string&lt;/span&gt;.Format(&lt;span style="color: #a31515"&gt;"Company: {0}\tOrder: {1}"&lt;/span&gt;, &lt;br /&gt;             cust.CompanyName, str));
    }
}&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The presentation slides are available &lt;a target="_blank" href="http://interactiveasp.net/media/p/182.aspx" class="null"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://interactiveasp.net/aggbug.aspx?PostID=128" width="1" height="1"&gt;</description><category domain="http://interactiveasp.net/blogs/natesstuff/archive/tags/Utah+Code+Camp/default.aspx">Utah Code Camp</category><category domain="http://interactiveasp.net/blogs/natesstuff/archive/tags/Code+Camp/default.aspx">Code Camp</category><category domain="http://interactiveasp.net/blogs/natesstuff/archive/tags/Presentations/default.aspx">Presentations</category><category domain="http://interactiveasp.net/blogs/natesstuff/archive/tags/ADO.NET+Entity+Framework/default.aspx">ADO.NET Entity Framework</category></item></channel></rss>