{"id":540,"date":"2012-09-27T14:03:51","date_gmt":"2012-09-27T14:03:51","guid":{"rendered":"http:\/\/foxware.co.uk\/?p=540"},"modified":"2012-09-27T14:03:51","modified_gmt":"2012-09-27T14:03:51","slug":"left-outer-join-linq-query","status":"publish","type":"post","link":"http:\/\/foxware.co.uk\/?p=540","title":{"rendered":"Left Outer Join LINQ Query"},"content":{"rendered":"<p>Here is a good example for creating a left outer join in LINQ for entities;<\/p>\n<pre class=\"lang:c# decode:true  crayon-selected\">var myQuery = (from x in db.tAXModelKitXref\r\n                           join p in db.vPRODUCTSTKDBs on x.ProdCode equals p.ProdCode into kits let k = kits.FirstOrDefault()\r\n                           orderby x.UniqueId\r\n                           select new\r\n                           {\r\n                               UniqueId = x.UniqueId,\r\n                               ProdCode = x.ProdCode,\r\n                               ProdCodeDesc = k.ProdCodeDesc, \r\n                               KitCode = x.KitCode,\r\n                               KitCodeDesc = \"\",\r\n                               ModelKitStatus = x.ModelKitStatus,\r\n                               ModelKitNotes = x.ModelKitNotes\r\n                           }).ToList();<\/pre>\n<p>&nbsp;<\/p>\n<p>If you need to perform other queries to get extra data for your main query list, first perform your main query first and convert the results to a list (see above query). You can then perform extra queries on this list to populate more fields. (see query below).<\/p>\n<pre>var myResults = (from items in myQuery\r\n                             select new\r\n                             {\r\n                                 items.UniqueId,\r\n                                 items.ProdCode,\r\n                                 items.ProdCodeDesc,\r\n                                 items.KitCode,\r\n                                 KitCodeDesc = ((from k in db.tCARKITS where k.KitCode.Equals(items.KitCode) select new { KitCodeDesc = k.KitCodeDesc }).FirstOrDefault() == null ? \"\" : (from k in db.tCARKITS where k.KitCode.Equals(items.KitCode) select new { KitCodeDesc = k.KitCodeDesc }).FirstOrDefault().KitCodeDesc ),\r\n                                 items.ModelKitStatus,\r\n                                 items.ModelKitNotes\r\n                             }).ToList();<\/pre>\n<p>&nbsp;<\/p>\n<p>Then just do this to display the results onto a grid;<\/p>\n<pre>MainGrid.DataSource = myResults;\r\n            foreach (Telerik.WinControls.UI.GridViewDataColumn cols in MainGrid.Columns)\r\n                cols.BestFit();<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Here is a good example for creating a left outer join in LINQ for entities; var myQuery = (from x in db.tAXModelKitXref join p in db.vPRODUCTSTKDBs on x.ProdCode equals p.ProdCode into kits let k = kits.FirstOrDefault() orderby x.UniqueId select new &hellip; <a href=\"http:\/\/foxware.co.uk\/?p=540\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[5],"tags":[],"_links":{"self":[{"href":"http:\/\/foxware.co.uk\/index.php?rest_route=\/wp\/v2\/posts\/540"}],"collection":[{"href":"http:\/\/foxware.co.uk\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/foxware.co.uk\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/foxware.co.uk\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/foxware.co.uk\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=540"}],"version-history":[{"count":2,"href":"http:\/\/foxware.co.uk\/index.php?rest_route=\/wp\/v2\/posts\/540\/revisions"}],"predecessor-version":[{"id":542,"href":"http:\/\/foxware.co.uk\/index.php?rest_route=\/wp\/v2\/posts\/540\/revisions\/542"}],"wp:attachment":[{"href":"http:\/\/foxware.co.uk\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=540"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/foxware.co.uk\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=540"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/foxware.co.uk\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=540"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}