
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
	<head><meta forua="true" http-equiv="Cache-Control" content="max-age=0" /></head><card id="MainCard" title="&#x6B22;&#x8FCE;&#x5149;&#x4E34;"><p><a href="wap.asp">&#x6728;&#x5B50;&#x5C4B;</a><br/>&nbsp;</p><p><b>&#x6807;&#x9898;&#x3A;</b> &#x41;&#x53;&#x50;&#x2E;&#x4E;&#x45;&#x54;&#x20;&#x4D;&#x56;&#x43;&#x33;&#x63A7;&#x5236;&#x5668;&#x4F20;&#x9012;&#x533F;&#x540D;&#x5BF9;&#x8C61;&#x5230;&#x89C6;&#x56FE;&#x89E3;&#x51B3;&#x65B9;&#x6CD5;</p><p><b>&#x4F5C;&#x8005;&#x3A;</b> &#x64;&#x6E;&#x61;&#x77;&#x6F;</p><p><b>&#x65E5;&#x671F;&#x3A;</b> &#x32;&#x30;&#x31;&#x33;&#x2D;&#x30;&#x38;&#x2D;&#x33;&#x31;&#x20;&#x30;&#x32;&#x3A;&#x31;&#x38;&#x20;&#x41;&#x4D;</p><p><b>&#x5206;&#x7C7B;&#x3A;</b> <a href="wap.asp?do=showLog&amp;cateID=5">&#x57;&#x65;&#x62;&#x7F16;&#x7A0B;</a></p><p><b>&#x5185;&#x5BB9;&#x3A;</b> &#x5728;ASP.NET MVC3 + Entity Framework&#x9879;&#x76EE;&#x4E2D;&#xFF0C;&#x4ECE;&#x63A7;&#x5236;&#x5668;&#x4F20;&#x9012;&#x533F;&#x540D;&#x5BF9;&#x8C61;&#x5230;&#x89C6;&#x56FE;&#x975E;&#x5E38;&#x5E38;&#x89C1;&#xFF0C;&#x539F;&#x672C;&#x4EE5;&#x4E3A;&#x7528;dynamic&#x80FD;&#x8F7B;&#x677E;&#x641E;&#x5B9A;&#xFF0C;&#x6700;&#x540E;&#x53D1;&#x73B0;&#x6211;&#x9519;&#x4E86;&#xFF1A;<br/>Controller&#xFF1A;<br/>&#x590D;&#x5236;&#x5185;&#x5BB9;&#x5230;&#x526A;&#x8D34;&#x677F; &#x7A0B;&#x5E8F;&#x4EE3;&#x7801;public ActionResult Index()<br/>{<br/>&nbsp;&nbsp;&nbsp;&nbsp;testContext context = new testContext();<br/>&nbsp;&nbsp;&nbsp;&nbsp;dynamic data = context.People<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Join(context.Pets, person =&gt; person.Id, Pet =&gt; Pet.Pid, (person, pet) =&gt; new { Person = person.Name, Pet = pet.Name });<br/>&nbsp;&nbsp;&nbsp;&nbsp;return View(data);<br/>}<br/>View&#xFF1A;<br/>&#x590D;&#x5236;&#x5185;&#x5BB9;&#x5230;&#x526A;&#x8D34;&#x677F; &#x7A0B;&#x5E8F;&#x4EE3;&#x7801;@model dynamic<br/>@foreach(var item in Model)<br/>{<br/>&nbsp;&nbsp;&nbsp;&nbsp;@(item.Person)&lt;text&gt;,&lt;/text&gt;@(item.Pet)&lt;br /&gt;<br/>}<br/>&#x5176;&#x539F;&#x56E0;&#x662F;C#&#x7684;&#x7F16;&#x8BD1;&#x5668;&#x603B;&#x662F;&#x5C06;&#x533F;&#x540D;&#x7C7B;&#x578B;&#x7F16;&#x8BD1;&#x6210;internal&#x7684;&#xFF0C;&#x5F53;&#x901A;&#x8FC7;dynamic&#x8BBF;&#x95EE;&#x5728;&#x5F53;&#x524D;&#x4E0A;&#x4E0B;&#x6587;&#x4E0D;&#x53EF;&#x89C1;&#x7684;&#x6210;&#x5458;&#x7684;&#x65F6;&#x5019;&#xFF0C;&#x5C31;&#x4F1A;&#x5F15;&#x53D1;&#x5F02;&#x5E38;&#x3002;&#x95EE;&#x9898;&#x91CD;&#x73B0;&#xFF1A;<br/>&#x590D;&#x5236;&#x5185;&#x5BB9;&#x5230;&#x526A;&#x8D34;&#x677F; &#x7A0B;&#x5E8F;&#x4EE3;&#x7801;using System;<br/>using System.Collections.Generic;<br/>using System.Linq;<br/>namespace Controller<br/>{<br/>&nbsp;&nbsp;&nbsp;&nbsp;public class Test<br/>&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/// &lt;summary&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/// &#x6A21;&#x62DF;&#x533F;&#x540D;&#x5BF9;&#x8C61;&#x533F;&#x540D;&#x7C7B;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/// &lt;/summary&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;private class Anonymous<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public string Person { get; set; }<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public string Pet { get; set; }<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public dynamic GetValue()<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return new Anonymous();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/>}<br/>namespace View<br/>{<br/>&nbsp;&nbsp;&nbsp;&nbsp;using Controller;<br/>&nbsp;&nbsp;&nbsp;&nbsp;class Program<br/>&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;static void Main(string[] args)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dynamic anonymous = new Test().GetValue();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(anonymous.Person);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.ReadKey();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/>}<br/>&#x4EE5;&#x524D;&#x90FD;&#x7528;&#x8001;&#x8D75;&#x7684;ToDynamic&#x65B9;&#x6CD5;&#x89E3;&#x51B3;&#xFF0C;&#x4ECA;&#x5929;&#x5728;.NET 4.0&#x7684;System&#x547D;&#x540D;&#x7A7A;&#x95F4;&#x4E0B;&#x770B;&#x5230;&#x4E00;&#x4E2A;&#x7C7B;Tuple&#xFF0C;&#x4E86;&#x89E3;&#x540E;&#x53D1;&#x73B0;&#x7528;&#x5B83;&#x4E5F;&#x53EF;&#x4EE5;&#x89E3;&#x51B3;&#x4E0A;&#x8FB9;&#x7684;&#x95EE;&#x9898;&#xFF1A;<br/>Controller&#xFF1A;<br/>&#x590D;&#x5236;&#x5185;&#x5BB9;&#x5230;&#x526A;&#x8D34;&#x677F; &#x7A0B;&#x5E8F;&#x4EE3;&#x7801;public ActionResult Index()<br/>{<br/>&nbsp;&nbsp;&nbsp;&nbsp;testContext context = new testContext();<br/>&nbsp;&nbsp;&nbsp;&nbsp;dynamic data = context.People<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Join(context.Pets, person =&gt; person.Id, Pet =&gt; Pet.Pid, (person, pet) =&gt; new { Person = person.Name, Pet = pet.Name })<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.ToList().Sel&#101;ct(item =&gt; Tuple.Cr&#101;ate(item.Person, item.Pet));<br/>&nbsp;&nbsp;&nbsp;&nbsp;return View(data);<br/>}<br/>View&#xFF1A;<br/>&#x590D;&#x5236;&#x5185;&#x5BB9;&#x5230;&#x526A;&#x8D34;&#x677F; &#x7A0B;&#x5E8F;&#x4EE3;&#x7801;@model IEnumerable&lt;Tuple&lt;string, string&gt;&gt;<br/>@foreach(var item in Model)<br/>{<br/>&nbsp;&nbsp;&nbsp;&nbsp;@(item.Item1)&lt;text&gt;,&lt;/text&gt;@(item.Item2)&lt;br /&gt;<br/>}<br/>&#x53C2;&#x8003;&#x8D44;&#x6599;<br/>[1].&#x4F7F;&#x7528;dynamic&#x5728;ASP.NET MVC&#x4E2D;&#x5E94;&#x7528;&#x533F;&#x540D;ViewModel&#xFF1A;http://blog.csdn.net/deboywang/article/details/6627191<br/>[2].&#x5F53;&#x7C7B;&#x578B;&#x4E3A;dynamic&#x7684;&#x89C6;&#x56FE;&#x6A21;&#x578B;&#x906D;&#x9047;&#x533F;&#x540D;&#x5BF9;&#x8C61;&#xFF1A;http://blog.zhaojie.me/2010/05/asp-net-mvc-dynamic-view-model-binding-error-with-anonymous-types.html<br/>[3].&#x5F53;dynamic&#x906D;&#x9047;&#x533F;&#x540D;&#x5BF9;&#x8C61;&#x6240;&#x9020;&#x6210;&#x7684;&#x95EE;&#x9898;&#x521D;&#x6B65;&#x7814;&#x7A76;&#x7ED3;&#x8BBA;&#xFF1A;http://www.cnblogs.com/Ivony/archive/2010/05/21/1740546.html<br/>[4].Tuple&#x7C7B;&#xFF1A;http://msdn.microsoft.com/zh-cn/library/System.Tuple(v=vs.100).aspx</p><p> + <a href="#CommentCard">&#x67E5;&#x770B;&#x5F53;&#x524D;&#x65E5;&#x5FD7;&#x8BC4;&#x8BBA;</a> (0)</p><p>&nbsp;<br/><br/><a href="wap.asp?do=Login">&#x767B;&#x5F55;</a></p><p><br/>&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;</p><p><a href="wap.asp">&#x6728;&#x5B50;&#x5C4B;</a></p><p><a href="http://www.pjhome.net/wap.asp">PJBlog3&nbsp;v3.2.9.518</a>&nbsp;Inside.</p><p>Processed&nbsp;In&nbsp;0.063&nbsp;ms</p><do type="prev" label="&#x8FD4;&#x56DE;"><prev/></do></card><card id="postCommentCard"><p><b>&#x6807;&#x9898;&#x3A;</b> <a href="#MainCard">&#x41;&#x53;&#x50;&#x2E;&#x4E;&#x45;&#x54;&#x20;&#x4D;&#x56;&#x43;&#x33;&#x63A7;&#x5236;&#x5668;&#x4F20;&#x9012;&#x533F;&#x540D;&#x5BF9;&#x8C61;&#x5230;&#x89C6;&#x56FE;&#x89E3;&#x51B3;&#x65B9;&#x6CD5;</a></p><p><br/>你没有权限发表评论</p><p><br/>&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;</p><p><a href="wap.asp">&#x6728;&#x5B50;&#x5C4B;</a></p><p><a href="http://www.pjhome.net/wap.asp">PJBlog3&nbsp;v3.2.9.518</a>&nbsp;Inside.</p><p>Processed&nbsp;In&nbsp;0.063&nbsp;ms</p><do type="prev" label="&#x8FD4;&#x56DE;"><prev/></do></card><card id="CommentCard"><p>&#x6682;&#x65E0;&#x8BC4;&#x8BBA;</p><p><a href="#MainCard">&#x8FD4;&#x56DE;</a></p><p><br/>&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;</p><p><a href="wap.asp">&#x6728;&#x5B50;&#x5C4B;</a></p><p><a href="http://www.pjhome.net/wap.asp">PJBlog3&nbsp;v3.2.9.518</a>&nbsp;Inside.</p><p>Processed&nbsp;In&nbsp;0.063&nbsp;ms</p><do type="prev" label="&#x8FD4;&#x56DE;"><prev/></do></card>
</wml>
