{"id":1987,"date":"2011-02-04T17:46:06","date_gmt":"2011-02-03T23:46:06","guid":{"rendered":"http:\/\/www.moonmile.net\/blog\/archives\/1987"},"modified":"2011-02-04T22:11:58","modified_gmt":"2011-02-04T13:11:58","slug":"linq-to-entities-%e3%81%ae%e5%ae%9f%e8%a1%8c%e3%82%af%e3%82%a8%e3%83%aa%e3%82%92%e8%a1%a8%e7%a4%ba%e3%81%99%e3%82%8b%e7%b6%9a","status":"publish","type":"post","link":"http:\/\/www.moonmile.net\/blog\/archives\/1987","title":{"rendered":"LINQ to Entities \u306e\u5b9f\u884c\u30af\u30a8\u30ea\u3092\u8868\u793a\u3059\u308b(\u7d9a)"},"content":{"rendered":"<p>\n\u3061\u3087\u3063\u3068\u524d\u56de\u306e\u7d9a\u304d\u3002\n<\/p>\n<p>\nLINQ to Entities \u306e\u5b9f\u884c\u30af\u30a8\u30ea\u3092\u8868\u793a\u3059\u308b | Moonmile Solutions Blog<br \/>\n<a href=\"http:\/\/www.moonmile.net\/blog\/archives\/1983\">http:\/\/www.moonmile.net\/blog\/archives\/1983<\/a>\n<\/p>\n<p>\n\u30de\u30b9\u30bf\u30fc\u30da\u30fc\u30b8\u306b\u6e21\u3059\u306e\u306b ViewData \u3092\u4f7f\u3063\u3066\u3044\u305f\u306e\u3060\u304c\u3001static \u306a\u30af\u30e9\u30b9\u306a\u3093\u3060\u304b\u3089\u3001\u305d\u306e\u307e\u307e\u6e21\u3057\u3066\u3057\u307e\u3063\u3066\u3082\u3044\u3044\u8a33\u3067\u3059\u3002ViewData \u3092\u4f7f\u3046\u3068\u3001\u30e2\u30c7\u30eb\u2192\u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc\u2192\u30d3\u30e5\u30fc \u3068\u306a\u3063\u3066\u30e2\u30c7\u30eb\u3067 LINQ \u3092\u5b9a\u7fa9\u3057\u3066\u3044\u308b\u306e\u306b\u3001\u308f\u3056\u308f\u3056\u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc\u3067 ViewData \u306b\u6307\u5b9a\u3057\u306a\u3044\u3068\u3044\u3046\u624b\u9593\u304c\u767a\u751f\u3059\u308b\u8a33\u3067\u3002\n<\/p>\n<p>\n\u307e\u305a\u306f\u3001LINQ to Entities \u306e\u30af\u30a8\u30ea\u3092\u8868\u793a\u3059\u308b\u30af\u30e9\u30b9\u3092\u4f5c\u3063\u3066\u3057\u307e\u3044\u307e\u3059\u3002\n<\/p>\n<pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\r\npublic static class DebugSQL\r\n{\r\n    private static List&lt;string&gt; sqlList = new List&lt;string&gt;();\r\n    public static string SQL\r\n    {\r\n        get\r\n        {\r\n            string sql = &amp;quot;&amp;quot;;\r\n            foreach (string s in sqlList)\r\n            {\r\n                sql += s + &amp;quot;\\n&amp;quot;;\r\n            }\r\n            return sql;\r\n        }\r\n                \r\n    }\r\n    public static List&lt;string&gt; SQLList\r\n    {\r\n        get {\r\n            return sqlList; \r\n        }\r\n    }\r\n    public static string ToTraceString(IQueryable query)\r\n    {\r\n        var objectQuery = query as ObjectQuery;\r\n        if (objectQuery != null)\r\n        {\r\n            return objectQuery.ToTraceString();\r\n        }\r\n        else\r\n        {\r\n            return &amp;quot;no sql;&amp;quot;;\r\n        }\r\n    }\r\n    public static void Add(IQueryable query)\r\n    {\r\n        var objectQuery = query as ObjectQuery;\r\n        if (objectQuery != null)\r\n        {\r\n            sqlList.Add( objectQuery.ToTraceString());\r\n        }\r\n    }\r\n    public static void Clear()\r\n    {\r\n        sqlList = new List&lt;string&gt;();\r\n    }\r\n}\r\n<\/pre>\n<p>\n\u30b9\u30bf\u30c6\u30a3\u30c3\u30af\u306a\u30af\u30e9\u30b9\u306b\u3059\u308b\u306e\u3067\u3001\u30e2\u30c7\u30eb\u3084\u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc\u3067 LINQ \u3092\u4f7f\u3046\u3068\u3053\u308d\u3067\u3001\u3053\u3093\u306a\u98a8\u306b DebugSQL::Add \u30e1\u30bd\u30c3\u30c9\u3092\u4f7f\u3063\u3066\u8ffd\u52a0\u3057\u3066\u3044\u304d\u307e\u3059\u3002\n<\/p>\n<pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\r\nList&lt;CategoryModel&gt; model = new List&lt;CategoryModel&gt;();\r\nvar items = from t in ent.wp_terms\r\n            where t.wp_term_taxonomy.FirstOrDefault().taxonomy == &amp;quot;category&amp;quot;\r\n            select t;\r\nDebugSQL.Add(items);\r\n<\/pre>\n<p>\n\u4eca\u56de\u306f\u8907\u6570\u56de\u306e\u547c\u3073\u51fa\u3057\u306b\u3082\u5bfe\u51e6\u3057\u3066\u3044\u308b\u306e\u3067\u3001LINQ \u3092\u4f7f\u3063\u3066\u3044\u308b\u3068\u3053\u308d\u3067 Add \u3057\u3066\u304a\u3051\u3070 OK\u3002\n<\/p>\n<p>\n\u305d\u3057\u3066\u3001\u30de\u30b9\u30bf\u30fc\u30da\u30fc\u30b8(Site.Master)\n<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;div id=&amp;quot;debug&amp;quot;&gt;\r\n    &lt;h2&gt;\u5b9f\u884c\u30af\u30a8\u30ea&lt;\/h2&gt;\r\n    &lt;% List&lt;string&gt; sqls = MvcWordpress.Models.DebugSQL.SQLList; %&gt;\r\n    &lt;% foreach (var item in sqls) { %&gt;\r\n        &lt;%: item%&gt;&lt;br \/&gt;\r\n    &lt;% }%&gt;\r\n    &lt;% MvcWordpress.Models.DebugSQL.Clear(); %&gt;\r\n&lt;\/div&gt;\r\n<\/pre>\n<p>\n\u3067\u3001\u3053\u3093\u306a\u98a8\u306b SQLList \u30d7\u30ed\u30d1\u30c6\u30a3\u3092\u53c2\u7167\u3057\u3066\u30eb\u30fc\u30d7\u3067\u5efb\u3057\u3066\u8868\u793a\u3057\u307e\u3059\u3002<br \/>\n\u3053\u3046\u3057\u3066\u304a\u304f\u3068\u3001CakePHP \u306e\u3088\u3046\u306b\u5b9f\u884c\u30af\u30a8\u30ea\u304c\u8868\u793a\u3067\u304d\u307e\u3059\u3002\n<\/p>\n<p><a href='http:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2011\/02\/wpid-dworkblogimage20110204_07org.jpg'><img border='0' src='http:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2011\/02\/wpid-dworkblogimage20110204_07thum.jpg'\/><\/a><\/p>\n<p>\n\u3053\u306e\u3059\u3055\u307e\u3058\u3044\u30af\u30a8\u30ea(\u82e6\u7b11)\u3092 SQL Server Management Studio \u306a\u3093\u304b\u306b\u30b3\u30d4\u30fc\uff06\u30da\u30fc\u30b9\u30c8\u3057\u3066\u4f7f\u3048\u3070\u3001\u307e\u3041\u3001\u306a\u3093\u304b\u304c\u5206\u304b\u308b\u304b\u3082\u3063\u3066\u306a\u5177\u5408\u3067\u3002\n<\/p>\n<pre class=\"brush: sql; title: ; notranslate\" title=\"\">\r\nSELECT            TOP (10) object_id, ID, post_author, post_date, post_date_gmt, post_content, post_title, post_category, post_excerpt, post_status, comment_status, ping_status, post_password, \r\n                        post_name, to_ping, pinged, post_modified, post_modified_gmt, post_content_filtered, post_parent, guid, menu_order, post_type, post_mime_type, comment_count\r\nFROM              (SELECT            Extent1.object_id, Extent3.ID, Extent3.post_author, Extent3.post_date, Extent3.post_date_gmt, Extent3.post_content, Extent3.post_title, Extent3.post_category, \r\n                                                 Extent3.post_excerpt, Extent3.post_status, Extent3.comment_status, Extent3.ping_status, Extent3.post_password, Extent3.post_name, Extent3.to_ping, Extent3.pinged, \r\n                                                 Extent3.post_modified, Extent3.post_modified_gmt, Extent3.post_content_filtered, Extent3.post_parent, Extent3.guid, Extent3.menu_order, Extent3.post_type, \r\n                                                 Extent3.post_mime_type, Extent3.comment_count\r\n                         FROM              wp_term_relationships AS Extent1 INNER JOIN\r\n                                                 wp_term_taxonomy AS Extent2 ON Extent1.term_taxonomy_id = Extent2.term_taxonomy_id LEFT OUTER JOIN\r\n                                                 wp_posts AS Extent3 ON Extent1.object_id = Extent3.ID\r\n                         WHERE             ('category' = Extent2.taxonomy) AND (Extent2.term_id = @p__linq__0)) AS Project1\r\nORDER BY       post_date DESC\r\n<\/pre>\n<p>\n\u3048\u3048\u3001\u3053\u3061\u3089\u306e\u30af\u30a8\u30ea\u306e\u89e3\u6790\u306f\u5f8c\u7a0b\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u3061\u3087\u3063\u3068\u524d\u56de\u306e\u7d9a\u304d\u3002 LINQ to Entities \u306e\u5b9f\u884c\u30af\u30a8\u30ea\u3092\u8868\u793a\u3059\u308b | Moonmile Solutions Blog http:\/\/www.moonmile.net\/blog\/archives\/1983 \u30de &hellip; <a href=\"http:\/\/www.moonmile.net\/blog\/archives\/1987\">\u7d9a\u304d\u3092\u8aad\u3080 <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[19],"tags":[],"class_list":["post-1987","post","type-post","status-publish","format-standard","hentry","category-asp-net"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/posts\/1987","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/comments?post=1987"}],"version-history":[{"count":2,"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/posts\/1987\/revisions"}],"predecessor-version":[{"id":1989,"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/posts\/1987\/revisions\/1989"}],"wp:attachment":[{"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/media?parent=1987"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/categories?post=1987"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/tags?post=1987"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}