
<?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> &#x4C;&#x69;&#x6E;&#x71;&#x7684;&#x53;&#x65;&#x6C;&#x26;&#x23;&#x31;&#x30;&#x31;&#x3B;&#x63;&#x74;&#x4D;&#x61;&#x6E;&#x79;&#x65B9;&#x6CD5;&#x4F7F;&#x7528;&#x793A;&#x4F8B;</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;&#x37;&#x2D;&#x31;&#x30;&#x20;&#x30;&#x36;&#x3A;&#x30;&#x39;&#x20;&#x50;&#x4D;</p><p><b>&#x5206;&#x7C7B;&#x3A;</b> <a href="wap.asp?do=showLog&amp;cateID=16">&#x57;&#x69;&#x6E;&#x7F16;&#x7A0B;</a></p><p><b>&#x5185;&#x5BB9;&#x3A;</b> &#x5728;EF&#x4E2D;&#xFF0C;&#x7531;&#x4E8E;&#x6570;&#x636E;&#x5E93;&#x8868;&#x4E4B;&#x95F4;&#x5B58;&#x5728;&#x5916;&#x952E;&#xFF0C;&#x7C7B;&#x4F3C;&#x4E0B;&#x9762;&#x7684;&#x5B9E;&#x4F53;&#x968F;&#x5904;&#x53EF;&#x89C1;(&#x5BF9;&#x8C61;&#x6709;&#x4E00;&#x4E2A;&#x96C6;&#x5408;&#x7C7B;&#x578B;&#x5C5E;&#x6027;)&#xFF1A;<br/>&#x590D;&#x5236;&#x5185;&#x5BB9;&#x5230;&#x526A;&#x8D34;&#x677F; &#x7A0B;&#x5E8F;&#x4EE3;&#x7801;public class Person<br/>{<br/>&nbsp;&nbsp;&nbsp;&nbsp;public int Id { get; set; }<br/>&nbsp;&nbsp;&nbsp;&nbsp;public string Name { get; set; }<br/>&nbsp;&nbsp;&nbsp;&nbsp;public Nullable&lt;int&gt; Age { get; set; }<br/>&nbsp;&nbsp;&nbsp;&nbsp;public virtual ICollection&lt;Pet&gt; Pets { get; set; }<br/>}<br/>&#x82E5;&#x8981;&#x6C42;&#x9875;&#x9762;&#x6309;&#x5982;&#x4E0B;&#x683C;&#x5F0F;&#x5C55;&#x793A;&#x6570;&#x636E;&#xFF0C;&#x8BD5;&#x8003;&#x8651;&#x5982;&#x4F55;&#x5199;Linq&#x8BED;&#x53E5;&#xFF1A;<br/> &#x5F15;&#x7528;&#x5185;&#x5BB9;person1,pet1<br/>person2,pet2<br/>person3,pet3<br/>&#x7B80;&#x5355;&#x7684;inner join&#x53EF;&#x4EE5;&#x7528;Join&#x65B9;&#x6CD5;&#x5B9E;&#x73B0;&#xFF1A;<br/>&#x590D;&#x5236;&#x5185;&#x5BB9;&#x5230;&#x526A;&#x8D34;&#x677F; &#x7A0B;&#x5E8F;&#x4EE3;&#x7801;var data = context.People.Join(context.Pets, person =&gt; person.Id, pet =&gt; pet.Pid, (person, pet) =&gt; new { Name = person.Name, PName = pet.Name });<br/>&#x9488;&#x5BF9;&#x8FD9;&#x79CD;&#x7279;&#x6B8A;&#x7ED3;&#x6784;&#x7684;&#x5BF9;&#x8C61;&#xFF0C;&#x8FD8;&#x53EF;&#x4EE5;&#x7528;Sel&#101;ctMany&#x6765;&#x5B9E;&#x73B0;&#xFF1A;<br/>&#x590D;&#x5236;&#x5185;&#x5BB9;&#x5230;&#x526A;&#x8D34;&#x677F; &#x7A0B;&#x5E8F;&#x4EE3;&#x7801;var data = context.People.Sel&#101;ctMany(person =&gt; person.Pets, (person, pet) =&gt; new { Name = person.Name, PName = pet.Name });<br/>&#x8FD9;&#x597D;&#x50CF;&#x770B;&#x4E0D;&#x51FA;&#x4F18;&#x52BF;&#xFF0C;&#x4F46;&#x82E5;&#x8981;&#x5B9E;&#x73B0;left join&#xFF0C;&#x90A3;&#x5C31;&#x975E;&#x7528;Sel&#101;ctMany&#x4E0D;&#x53EF;&#x4E86;&#xFF1A;<br/>&#x590D;&#x5236;&#x5185;&#x5BB9;&#x5230;&#x526A;&#x8D34;&#x677F; &#x7A0B;&#x5E8F;&#x4EE3;&#x7801;var data = context.People.GroupJoin(context.Pets, person =&gt; person.Id, pet =&gt; pet.Pid, (person, pets) =&gt; new { person = person, pets = pets }).Sel&#101;ctMany(item =&gt; item.pets.DefaultIfEmpty(), (item, pet) =&gt; new { Name = item.person.Name, PName = pet == null ? &#34;-&#34; : pet.Name });<br/>//or<br/>var data = context.People.Sel&#101;ctMany(person =&gt; person.Pets.DefaultIfEmpty(), (person, pet) =&gt; new { Name = person.Name, PName = pet == null ? &#34;-&#34; : pet.Name });<br/>SQL Server Profiler&#x6355;&#x83B7;&#x5BF9;&#x5E94;sql&#x8BED;&#x53E5;&#xFF1A;<br/>&#x590D;&#x5236;&#x5185;&#x5BB9;&#x5230;&#x526A;&#x8D34;&#x677F; &#x7A0B;&#x5E8F;&#x4EE3;&#x7801;Sel&#101;ct <br/>[Extent1].[Id] AS [Id], <br/>[Extent1].[Name] AS [Name], <br/>CASE WHEN ([Extent2].[Id] IS NULL) THEN N&#39;-&#39; ELSE [Extent2].[Name] END AS [C1]<br/>FROM&nbsp;&nbsp;[dbo].[Person] AS [Extent1]<br/>LEFT OUTER JOIN [dbo].[Pet] AS [Extent2] ON [Extent1].[Id] = [Extent2].[Pid]</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.032&nbsp;ms</p><do type="prev" label="&#x8FD4;&#x56DE;"><prev/></do></card><card id="postCommentCard"><p><b>&#x6807;&#x9898;&#x3A;</b> <a href="#MainCard">&#x4C;&#x69;&#x6E;&#x71;&#x7684;&#x53;&#x65;&#x6C;&#x26;&#x23;&#x31;&#x30;&#x31;&#x3B;&#x63;&#x74;&#x4D;&#x61;&#x6E;&#x79;&#x65B9;&#x6CD5;&#x4F7F;&#x7528;&#x793A;&#x4F8B;</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.032&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.032&nbsp;ms</p><do type="prev" label="&#x8FD4;&#x56DE;"><prev/></do></card>
</wml>
