{"id":697,"date":"2008-05-16T21:37:31","date_gmt":"2008-05-16T21:37:31","guid":{"rendered":"\/blogs\/bobb\/post\/Trace-Events-in-ADONET-Entity-Framework.aspx"},"modified":"2014-01-20T12:16:16","modified_gmt":"2014-01-20T20:16:16","slug":"trace-events-in-ado-net-entity-framework","status":"publish","type":"post","link":"https:\/\/www.sqlskills.com\/blogs\/bobb\/trace-events-in-ado-net-entity-framework\/","title":{"rendered":"Trace Events in ADO.NET Entity Framework"},"content":{"rendered":"<p><P>Every once in a while I&#8217;ll get inquires on a paper I wrote in 2004 about the ETW trace providers for ADO.NET (named &#8220;Tracing Data Access&#8221;). I got an inquiry today, and since I&#8217;d recently installed Visual Studio 2008 SP1 Beta, I thought I&#8217;d try it out on a LINQ to SQL program and an Entity Framework program. <\/P><br \/>\n<P>If you haven&#8217;t read the paper, the <a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/ms971550.aspx\">original is still available<\/a> on MSDN, but <a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/aa964124.aspx\">an embellished version<\/a> (including SNAC tracing in addition to ADO.NET) was released in 2006. I&#8217;m also doing a talk at TechEd on &#8220;End-to-End tracing in ADO.NET and SQL Server 2008&#8221;. If you&#8217;re at all interested in client tracing or SQL Server 2008 Extended Events, it will be worth your while to attend.<\/P><br \/>\n<P>Unless the LINQ to SQL program has its own ETW provider that I missed, I got no LINQ to SQL specific trace events. Since LINQ to SQL is a thin layer over System.Data.SqlClient, I do get the events for SqlClient however.<\/P><br \/>\n<P>Entity Framework however, is another matter. I not only get EF-specific trace events,&nbsp;but there appears to be some new trace namespace abbreviations for EF as well. These are the ones I&#8217;ve seen while going through one trace of one simple EF program. I may have missed some.<\/P><br \/>\n<P>dobj = System.Data.Objects<BR>ec&nbsp;&nbsp; = System.Data.EntityClient<BR>cqt&nbsp; = System.Data.Common.CommandTrees<BR>pc&nbsp;&nbsp; = System.Data.Query.PlanCompiler<\/P><br \/>\n<P>There&#8217;s quite a bit of trace information for some parts of EF, like the CommandTree portion. But after a whole half-hour and a few traces, it appears that not all items in EF are as thoroughly instrumented with trace events as, say, SqlClient. On the other hand, EF provider for SQL Server will show lots of SqlClient-specific and System.Data.Common events, as does LINQ to SQL.<\/P><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Every once in a while I&#8217;ll get inquires on a paper I wrote in 2004 about the ETW trace providers for ADO.NET (named &#8220;Tracing Data Access&#8221;). I got an inquiry today, and since I&#8217;d recently installed Visual Studio 2008 SP1 Beta, I thought I&#8217;d try it out on a LINQ to SQL program and an [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[29],"tags":[],"class_list":["post-697","post","type-post","status-publish","format-standard","hentry","category-sql-server-2008"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v21.9.1 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Trace Events in ADO.NET Entity Framework - Bob Beauchemin<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.sqlskills.com\/blogs\/bobb\/trace-events-in-ado-net-entity-framework\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Trace Events in ADO.NET Entity Framework - Bob Beauchemin\" \/>\n<meta property=\"og:description\" content=\"Every once in a while I&#8217;ll get inquires on a paper I wrote in 2004 about the ETW trace providers for ADO.NET (named &#8220;Tracing Data Access&#8221;). I got an inquiry today, and since I&#8217;d recently installed Visual Studio 2008 SP1 Beta, I thought I&#8217;d try it out on a LINQ to SQL program and an [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.sqlskills.com\/blogs\/bobb\/trace-events-in-ado-net-entity-framework\/\" \/>\n<meta property=\"og:site_name\" content=\"Bob Beauchemin\" \/>\n<meta property=\"article:published_time\" content=\"2008-05-16T21:37:31+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2014-01-20T20:16:16+00:00\" \/>\n<meta name=\"author\" content=\"Bob Beauchemin\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Bob Beauchemin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/bobb\/trace-events-in-ado-net-entity-framework\/\",\"url\":\"https:\/\/www.sqlskills.com\/blogs\/bobb\/trace-events-in-ado-net-entity-framework\/\",\"name\":\"Trace Events in ADO.NET Entity Framework - Bob Beauchemin\",\"isPartOf\":{\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/bobb\/#website\"},\"datePublished\":\"2008-05-16T21:37:31+00:00\",\"dateModified\":\"2014-01-20T20:16:16+00:00\",\"author\":{\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/bobb\/#\/schema\/person\/62bfa986c5b5d28fcffd8b4fc409c73e\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/bobb\/trace-events-in-ado-net-entity-framework\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.sqlskills.com\/blogs\/bobb\/trace-events-in-ado-net-entity-framework\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/bobb\/trace-events-in-ado-net-entity-framework\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.sqlskills.com\/blogs\/bobb\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"SQL Server 2008\",\"item\":\"https:\/\/www.sqlskills.com\/blogs\/bobb\/category\/sql-server-2008\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Trace Events in ADO.NET Entity Framework\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/bobb\/#website\",\"url\":\"https:\/\/www.sqlskills.com\/blogs\/bobb\/\",\"name\":\"Bob Beauchemin\",\"description\":\"SQL Server Blog\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.sqlskills.com\/blogs\/bobb\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/bobb\/#\/schema\/person\/62bfa986c5b5d28fcffd8b4fc409c73e\",\"name\":\"Bob Beauchemin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/bobb\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/6f80e6cc667410857fa6a21931dc528b8092f4d112bf7a8ff7c267674d44ee37?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/6f80e6cc667410857fa6a21931dc528b8092f4d112bf7a8ff7c267674d44ee37?s=96&d=mm&r=g\",\"caption\":\"Bob Beauchemin\"},\"sameAs\":[\"http:\/www.sqlskills.com\/blogs\/bobb\/\"],\"url\":\"https:\/\/www.sqlskills.com\/blogs\/bobb\/author\/bobb\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Trace Events in ADO.NET Entity Framework - Bob Beauchemin","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.sqlskills.com\/blogs\/bobb\/trace-events-in-ado-net-entity-framework\/","og_locale":"en_US","og_type":"article","og_title":"Trace Events in ADO.NET Entity Framework - Bob Beauchemin","og_description":"Every once in a while I&#8217;ll get inquires on a paper I wrote in 2004 about the ETW trace providers for ADO.NET (named &#8220;Tracing Data Access&#8221;). I got an inquiry today, and since I&#8217;d recently installed Visual Studio 2008 SP1 Beta, I thought I&#8217;d try it out on a LINQ to SQL program and an [&hellip;]","og_url":"https:\/\/www.sqlskills.com\/blogs\/bobb\/trace-events-in-ado-net-entity-framework\/","og_site_name":"Bob Beauchemin","article_published_time":"2008-05-16T21:37:31+00:00","article_modified_time":"2014-01-20T20:16:16+00:00","author":"Bob Beauchemin","twitter_misc":{"Written by":"Bob Beauchemin","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.sqlskills.com\/blogs\/bobb\/trace-events-in-ado-net-entity-framework\/","url":"https:\/\/www.sqlskills.com\/blogs\/bobb\/trace-events-in-ado-net-entity-framework\/","name":"Trace Events in ADO.NET Entity Framework - Bob Beauchemin","isPartOf":{"@id":"https:\/\/www.sqlskills.com\/blogs\/bobb\/#website"},"datePublished":"2008-05-16T21:37:31+00:00","dateModified":"2014-01-20T20:16:16+00:00","author":{"@id":"https:\/\/www.sqlskills.com\/blogs\/bobb\/#\/schema\/person\/62bfa986c5b5d28fcffd8b4fc409c73e"},"breadcrumb":{"@id":"https:\/\/www.sqlskills.com\/blogs\/bobb\/trace-events-in-ado-net-entity-framework\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.sqlskills.com\/blogs\/bobb\/trace-events-in-ado-net-entity-framework\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.sqlskills.com\/blogs\/bobb\/trace-events-in-ado-net-entity-framework\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.sqlskills.com\/blogs\/bobb\/"},{"@type":"ListItem","position":2,"name":"SQL Server 2008","item":"https:\/\/www.sqlskills.com\/blogs\/bobb\/category\/sql-server-2008\/"},{"@type":"ListItem","position":3,"name":"Trace Events in ADO.NET Entity Framework"}]},{"@type":"WebSite","@id":"https:\/\/www.sqlskills.com\/blogs\/bobb\/#website","url":"https:\/\/www.sqlskills.com\/blogs\/bobb\/","name":"Bob Beauchemin","description":"SQL Server Blog","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.sqlskills.com\/blogs\/bobb\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.sqlskills.com\/blogs\/bobb\/#\/schema\/person\/62bfa986c5b5d28fcffd8b4fc409c73e","name":"Bob Beauchemin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.sqlskills.com\/blogs\/bobb\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/6f80e6cc667410857fa6a21931dc528b8092f4d112bf7a8ff7c267674d44ee37?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/6f80e6cc667410857fa6a21931dc528b8092f4d112bf7a8ff7c267674d44ee37?s=96&d=mm&r=g","caption":"Bob Beauchemin"},"sameAs":["http:\/www.sqlskills.com\/blogs\/bobb\/"],"url":"https:\/\/www.sqlskills.com\/blogs\/bobb\/author\/bobb\/"}]}},"_links":{"self":[{"href":"https:\/\/www.sqlskills.com\/blogs\/bobb\/wp-json\/wp\/v2\/posts\/697","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.sqlskills.com\/blogs\/bobb\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.sqlskills.com\/blogs\/bobb\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/bobb\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/bobb\/wp-json\/wp\/v2\/comments?post=697"}],"version-history":[{"count":0,"href":"https:\/\/www.sqlskills.com\/blogs\/bobb\/wp-json\/wp\/v2\/posts\/697\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.sqlskills.com\/blogs\/bobb\/wp-json\/wp\/v2\/media?parent=697"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/bobb\/wp-json\/wp\/v2\/categories?post=697"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/bobb\/wp-json\/wp\/v2\/tags?post=697"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}