{"id":1934,"date":"2011-02-02T15:32:09","date_gmt":"2011-02-02T06:32:09","guid":{"rendered":"http:\/\/www.moonmile.net\/blog\/archives\/1934"},"modified":"2011-02-02T15:32:52","modified_gmt":"2011-02-02T06:32:52","slug":"asp-net-mvc-%e3%81%8b%e3%82%89-wordpress-%e3%81%ae%e3%83%87%e3%83%bc%e3%82%bf%e3%82%92%e6%89%b1%e3%81%862","status":"publish","type":"post","link":"http:\/\/www.moonmile.net\/blog\/archives\/1934","title":{"rendered":"ASP.NET MVC \u304b\u3089 wordpress \u306e\u30c7\u30fc\u30bf\u3092\u6271\u3046(2)"},"content":{"rendered":"<p>\n\u6b21\u306b\u6700\u8fd1\u6295\u7a3f\u3057\u305f\u4e00\u89a7\u3092\u8868\u793a\u3055\u305b\u307e\u3059\u3002<br \/>\n\u4eca\u56de\u306f\u3001\u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc\u306e PostsController::RecentPosts \u30e1\u30bd\u30c3\u30c9\u304b\u3089\u4f5c\u3063\u3066\u3044\u304d\u307e\u3059\u306d\u3002\n<\/p>\n<p>\n\u25a0\u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc\u3092 LINQ \u3067\u4f5c\u308b\u3002\n<\/p>\n<pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\npublic ActionResult Recent()\n{\n    int max = 5;\n    wordpressEntities ent = new wordpressEntities();\n    var model = (from p in ent.wp_posts\n                    join u in ent.wp_users on p.post_author equals u.ID\n                    where p.post_status == &quot;publish&quot;\n                    orderby p.post_date descending\n                    select new\n                    { Post = p, User = u }\n                    ).Take(max);\n\n    return View(model);\n}\n<\/pre>\n<p>\n\u6295\u7a3f\u3057\u305f\u4eba\u306e\u540d\u524d(User.display_name)\u3092\u8868\u793a\u3055\u305b\u305f\u3044\u306e\u3067\u3001wp_users \u30c6\u30fc\u30d6\u30eb\u3068\u30ea\u30f3\u30af\u3055\u305b\u307e\u3059\u3002\u305d\u3066\u3044\u3066\u3001\u6700\u521d\u306e5\u884c\u3060\u3051\u8868\u793a\u3055\u305b\u305f\u3044\u306e\u3067 Take \u95a2\u6570\u3092\u4f7f\u3063\u3066\u3044\u307e\u3059\u3002<br \/>\n\u3053\u306e\u305f\u3081\u306e\u5c02\u7528\u306e\u30e2\u30c7\u30eb\u3092\u4f5c\u308b\u306e\u306f\u9762\u5012\u306a\u306e\u3067\u3001\u7121\u540d\u30af\u30e9\u30b9\u3092\u4f5c\u3063\u3066 new { Post = p, User = u } \u3068\u3057\u3066\u4f5c\u6210\u3057\u3066\u3044\u307e\u3059\u3002\n<\/p>\n<p>\n\u3053\u3046\u3059\u308b\u3068\u3001\u30d3\u30e5\u30fc\u5074\u3067\n<\/p>\n<ul>\n<li>item.Post.post_author<\/li>\n<li>item.User.display_name<\/li>\n<\/ul>\n<p>\n\u306e\u3088\u3046\u306b\u53c2\u7167\u304c\u3067\u304d\u308b\u30cf\u30ba\u3067\u3059\u306d(\u5b9f\u306f\u3001\u3046\u307e\u304f\u3044\u304d\u307e\u305b\u3093&#8230;)\u3002\n<\/p>\n<p>\n\u25a0\u30d3\u30e5\u30fc\u3092\u4f5c\u308b\n<\/p>\n<pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\n&lt;%@ Page Title=&amp;quot;&amp;quot; Language=&amp;quot;C#&amp;quot; MasterPageFile=&amp;quot;~\/Views\/Shared\/Site.Master&amp;quot; Inherits=&amp;quot;System.Web.Mvc.ViewPage&lt;dynamic&gt;&amp;quot; %&gt;\n\n&lt;asp:Content ID=&amp;quot;Content1&amp;quot; ContentPlaceHolderID=&amp;quot;TitleContent&amp;quot; runat=&amp;quot;server&amp;quot;&gt;\n\tRecent\n&lt;\/asp:Content&gt;\n\n&lt;asp:Content ID=&amp;quot;Content2&amp;quot; ContentPlaceHolderID=&amp;quot;MainContent&amp;quot; runat=&amp;quot;server&amp;quot;&gt;\n\n    &lt;h2&gt;\u6700\u8fd1\u6295\u7a3f\u3057\u305f\u8a18\u4e8b&lt;\/h2&gt;\n    &lt;table&gt;\n        &lt;tr&gt;\n            &lt;th&gt;ID&lt;\/th&gt;\n            &lt;th&gt;post_date&lt;\/th&gt;\n            &lt;th&gt;post_title&lt;\/th&gt;\n            &lt;th&gt;post_author&lt;\/th&gt;\n            &lt;th&gt;User.display_name&lt;\/th&gt;\n            &lt;th&gt;guid&lt;\/th&gt;\n        &lt;\/tr&gt;\n        &lt;% foreach (var item in Model) { %&gt;\n            &lt;tr&gt;\n                &lt;td&gt;&lt;%: item.Post.ID %&gt;&lt;\/td&gt; \n                &lt;td&gt;&lt;%: item.Post.post_title %&gt;&lt;\/td&gt;\n                &lt;td&gt;&lt;%: item.Post.post_date %&gt;&lt;\/td&gt;\n                &lt;td&gt;&lt;%: item.Post.post_author %&gt;&lt;\/td&gt;\n                &lt;td&gt;&lt;%: item.User.display_name %&gt;&lt;\/td&gt;\n                &lt;td&gt;&lt;%: item.Post.guid %&gt;&lt;\/td&gt;\n            &lt;\/tr&gt;\n        &lt;% } %&gt;\n    &lt;\/table&gt;\n    &lt;h2&gt;\u6700\u8fd1\u6295\u7a3f\u3057\u305f\u8a18\u4e8b(\u30ea\u30f3\u30af\u7248)&lt;\/h2&gt;\n    &lt;ul&gt;\n        &lt;% foreach (var item in Model) { %&gt;\n        &lt;li&gt;\n            &lt;a href=&amp;quot;&lt;%: item.Post.guid %&gt;&amp;quot;&gt;&lt;%: item.Post.post_title %&gt;&lt;\/a&gt;\n            by &lt;%: item.User.display_name %&gt;\n            at &lt;%: item.Post.post_date %&gt;\n        &lt;\/li&gt;\n        &lt;% } %&gt;\n    &lt;\/ul&gt;\n&lt;\/asp:Content&gt;\n<\/pre>\n<p>\n\u578b\u7121\u3057\u306e\u6307\u5b9a\u306a\u306e\u3067\u3001ViewPage<dynamic> \u306e\u307e\u307e\u3067\u3059\u3002<br \/>\n\u305d\u308c\u305e\u308c\u306e\u8868\u793a\u306f\u3001\u305d\u3093\u307e\u307e aspx \u306b\u8a18\u8ff0\u3059\u308b\u3068\u30bf\u30a4\u30d4\u30f3\u30b0\u30df\u30b9\u304c\u8d77\u3053\u308b\u306e\u3067\u3001\u3042\u3089\u304b\u3058\u3081\u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc\u5185\u3067\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u3057\u305f\u3082\u306e\u3092\u30b3\u30d4\u30fc\uff06\u30da\u30fc\u30b9\u30c8\u3057\u307e\u3057\u305f\u3002\n<\/p>\n<p>\n\u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc\u3067\u3001\n<\/p>\n<pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\nforeach (var item in model)\n{\n    Debug.Print(&quot;{0},{1}&quot;, \n        item.Post.ID, \n        item.Post.post_date,\n        item.Post.post_author,\n        item.User.display_name,\n        item.Post.guid );\n}\n<\/pre>\n<p>\n\u306e\u3088\u3046\u306b\u4f5c\u3063\u3066\u3044\u304f\u3068\u3001\u30a4\u30f3\u30c6\u30ea\u30bb\u30f3\u30b9\u304c\u4f7f\u3048\u3066\u4fbf\u5229\u3067\u3059\u3002\n<\/p>\n<p>\n\u3055\u3066\u3001\u3053\u308c\u3092\u5b9f\u884c\u3059\u308b\u3068\u3067\u3059\u306d\u3002\u3002\u3002\u5b9f\u884c\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3059\u308b\u306e\u3067\u3059\u3002\n<\/p>\n<p><a href='http:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2011\/02\/wpid-dworkblogimage20110202_04org.jpg'><img border='0' src='http:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2011\/02\/wpid-dworkblogimage20110202_04thum.jpg'\/><\/a><\/p>\n<p>\n\u306a\u3093\u3067\u3067\u3057\u3087\u3046\u306d\uff1f\u7121\u540d\u30af\u30e9\u30b9\u3067\u5b9a\u7fa9\u3057\u305f\u3082\u306e\u304c\u3001\u30d3\u30e5\u30fc\u306e\u3068\u3053\u308d\u3067\u306f\u3046\u307e\u304f\u53d6\u5f97\u3067\u304d\u306a\u3044\u3088\u3046\u3067\u3059\u3002\n<\/p>\n<p>\n\u25a0\u4ed5\u65b9\u304c\u306a\u3044\u306e\u3067\u30e2\u30c7\u30eb\u30af\u30e9\u30b9\u3092\u4f5c\u308b\n<\/p>\n<p>\n\u3068\u3044\u3046\u8a33\u3067\u3001\u4ed5\u65b9\u304c\u306a\u3044\u306e\u3067 Posts \u30e2\u30c7\u30eb\u30af\u30e9\u30b9\u3092\u4f5c\u308a\u307e\u3059\u3002\u5148\u306b\u4f5c\u3063\u305f FindPosts \u30e1\u30bd\u30c3\u30c9\u3082\u8e0f\u307e\u3048\u3066\u3001\u3053\u3093\u306a\u611f\u3058\u3067\u3059\u3002\n<\/p>\n<pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\npublic class Posts : wp_posts \n{\n    public wp_users User { get; set; }\n    public wp_posts Post { get; set; }\n\n    public IQueryable&lt;wp_posts&gt; FindPosts()\n    {\n        wordpressEntities ent = new wordpressEntities();\n        var model = from t in ent.wp_posts\n                    where t.post_status == &amp;quot;publish&amp;quot;\n                    select t;\n        return model;\n    }\n    public List&lt;Posts&gt; RecentPosts(int max)\n    {\n        wordpressEntities ent = new wordpressEntities();\n        var model = (from p in ent.wp_posts\n                        join u in ent.wp_users on p.post_author equals u.ID\n                        where p.post_status == &amp;quot;publish&amp;quot;\n                        orderby p.post_date descending\n                        select new { Post = p, User = u }\n                        ).Take(max);\n\n        List&lt;Posts&gt; posts = new List&lt;Posts&gt;();\n        foreach (var item in model)\n        {\n            posts.Add( \n                new Posts { Post = item.Post, User = item.User });\n        }\n        return posts;\n    }\n}\n<\/pre>\n<p>\n\u30d7\u30ed\u30d1\u30c6\u30a3\u3067 wp_posts \u3068 wp_users \u306e\u30c6\u30fc\u30d6\u30eb\u304c\u53c2\u7167\u3067\u304d\u308b\u3088\u3046\u306b Post, User \u3092\u5b9a\u7fa9\u3057\u3066\u304a\u304d\u307e\u3059\u3002\u5f8c\u306f\u3001\u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc\u3067\u4f5c\u6210\u3057\u3066\u3044\u305f LINQ \u306e\u6587\u3092\u30b3\u30d4\u30fc\uff06\u30da\u30fc\u30b9\u30c8\u3057\u3066\u3001\u3053\u306e\u7d50\u679c\u3092 List \u306b\u8a70\u3081\u3066\u8fd4\u3057\u307e\u3059\u3002\n<\/p>\n<p>\n\u5bfe\u3057\u3066\u3001\u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc\u306e RecentPosts \u30e1\u30bd\u30c3\u30c9\u306f\u975e\u5e38\u306b\u306a\u308b\u306e\u3067\u304c\u3001\u306a\u3093\u3060\u304b\u306a\u3041\u3001\u3068\u3044\u3046\u611f\u3058\u3067\u3059\u306d\u3002\n<\/p>\n<pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\npublic ActionResult Recent()\n{\n    int max = 5;\n    Models.Posts post = new Models.Posts();\n    var model = post.RecentPosts(max);\n    return View(model);\n}\n<\/pre>\n<p>\n\u3053\u308c\u3092\u52d5\u304b\u3059\u3068\u3001\u30d3\u30e5\u30fc\u306f\u305d\u306e\u307e\u307e\u3067\u7dba\u9e97\u306b\u52d5\u304d\u307e\u3059\u3002\n<\/p>\n<p><a href='http:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2011\/02\/wpid-dworkblogimage20110202_05org.jpg'><img border='0' src='http:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2011\/02\/wpid-dworkblogimage20110202_05thum.jpg'\/><\/a><\/p>\n<p>\n\u4e00\u5fdc\u3001\u52d5\u304f\u306b\u306f\u52d5\u304f\u306e\u3067\u3059\u304c\u3001wp_posts \u3068 wp_users \u306e\u30c6\u30fc\u30d6\u30eb\u3092\u3044\u3061\u3044\u3061 join \u3055\u305b\u306a\u3044\u3068\u3044\u3051\u306a\u3044\u306e\u304c CakePHP \u3088\u308a\u3082\u52a3\u3063\u3066\u3044\u307e\u3059\u3088\u306d\u3002\n<\/p>\n<p>\n\u3068\u3044\u3046\u306e\u306f\u3001EDM(Entitiy Data Model)\u306e\u3068\u3053\u308d\u3067\u30ea\u30ec\u30fc\u30b7\u30e7\u30f3\u3092\u8a2d\u5b9a\u3057\u3066\u3044\u306a\u3044\u306e\u304c\u539f\u56e0\u306a\u306e\u3067\u3059\u3002CakePHP \u3067\u306f Model::$belongsTo \u306a\u3069\u3067 join \u3092\u6307\u5b9a\u3057\u3066\u3044\u308b\u306e\u3067\u3059\u304c\u3001wordpress \u306e\u30c6\u30fc\u30d6\u30eb\u304b\u3089\u5f15\u3063\u5f35\u3063\u3066\u304d\u305f\u30c6\u30fc\u30d6\u30eb\u3067\u306f\u3001\u3053\u306e join \u304c\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002\n<\/p>\n<p>\n\u306a\u306e\u3067\u3001\u304a\u6b21\u306f\u3001\u30ea\u30ec\u30fc\u30b7\u30e7\u30f3\u3092\u8a2d\u5b9a\u3057\u305f\u3046\u3048\u3067\u3001\u6700\u8fd1\u6295\u7a3f\u3057\u305f\u4e00\u89a7\u3092\u8868\u793a\u3055\u305b\u3066\u307f\u307e\u3059\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u6b21\u306b\u6700\u8fd1\u6295\u7a3f\u3057\u305f\u4e00\u89a7\u3092\u8868\u793a\u3055\u305b\u307e\u3059\u3002 \u4eca\u56de\u306f\u3001\u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc\u306e PostsController::RecentPosts \u30e1\u30bd\u30c3\u30c9\u304b\u3089\u4f5c\u3063\u3066\u3044\u304d\u307e\u3059\u306d\u3002 \u25a0\u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc\u3092 LINQ \u3067\u4f5c\u308b\u3002 public Action &hellip; <a href=\"http:\/\/www.moonmile.net\/blog\/archives\/1934\">\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,13],"tags":[],"class_list":["post-1934","post","type-post","status-publish","format-standard","hentry","category-asp-net","category-wordpress"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/posts\/1934","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=1934"}],"version-history":[{"count":2,"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/posts\/1934\/revisions"}],"predecessor-version":[{"id":1936,"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/posts\/1934\/revisions\/1936"}],"wp:attachment":[{"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/media?parent=1934"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/categories?post=1934"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/tags?post=1934"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}