??????? 我從查詢表達(dá)式轉(zhuǎn)成查詢操作符的寫法,但是結(jié)果總是不對??????? //查詢表達(dá)式??????? GridViewLeftOuterJoin.DataSource =????????? from publisher in SampleData.Publishers????????? join book in SampleData.Books on publisher equals book.Publisher into publisherBooks????????? from book in publisherBooks.DefaultIfEmpty ()????????? select new {????????????? Publisher = publisher.Name ,????????????? Book = book == default ( Book ) ? "(no books)" : book.Title????????? };??????? GridViewLeftOuterJoin.DataBind ();???????? 正確結(jié)果:??????????? //Publisher????? Book ??????????? //FunBooks?????? Funny Stories ??????????? //FunBooks?????? Bonjour mon Amour ??????????? //Joe Publishing LINQ rules ??????????? //Joe Publishing C# on Rails ??????????? //Joe Publishing All your base are belong to us ??????????? //I Publisher??? (no books)
???????
??????? //查詢操作符??????? GridViewLeftOuterJoin1.DataSource = SampleData.Publishers??????????????????????????????????????????? .Join ( SampleData.Books ,??????????????????????????????????????????????????????? p => p ,??????????????????????????????????????????????????????? b => b.Publisher ,??????????????????????????????????????????????????????? ( b , pb ) => new {??????????????????????????????????????????????????????????? Publisher = b.Name ,??????????????????????????????????????????????????????????? Book = pb == default ( Book ) ? "(no books)" : pb.Title??????????????????????????????????????????????????????? } ).DefaultIfEmpty ();
??????? GridViewLeftOuterJoin1.DataBind ();???????? 結(jié)果(錯(cuò)誤):??????????? //Publisher????? Book ??????????? //FunBooks?????? Funny Stories ??????????? //FunBooks?????? Bonjour mon Amour ??????????? //Joe Publishing LINQ rules ??????????? //Joe Publishing C# on Rails ??????????? //Joe Publishing All your base are belong to us
以下為數(shù)據(jù)源:?static public class SampleData? {??? static public Publisher[] Publishers =??? {????? new Publisher {Name="FunBooks"},????? new Publisher {Name="Joe Publishing"},????? new Publisher {Name="I Publisher"}??? };??? static public Book[] Books =??? {????? new Book {??????? Title="Funny Stories",??????? Publisher=Publishers[0],??????? Authors=new[]{Authors[0], Authors[1]},??????? PageCount=101,??????? Price=25.55M,??????? PublicationDate=new DateTime(2004, 11, 10),??????? Isbn="0-000-77777-2",??????? Subject=Subjects[0]????? },????? new Book {??????? Title="LINQ rules",??????? Publisher=Publishers[1],??????? Authors=new[]{Authors[2]},??????? PageCount=300,??????? Price=12M,??????? PublicationDate=new DateTime(2007, 9, 2),??????? Isbn="0-111-77777-2",??????? Subject=Subjects[0]????? },????? new Book {??????? Title="C# on Rails",??????? Publisher=Publishers[1],??????? Authors=new[]{Authors[2]},??????? PageCount=256,??????? Price=35.5M,??????? PublicationDate=new DateTime(2007, 4, 1),??????? Isbn="0-222-77777-2",??????? Subject=Subjects[0]????? },????? new Book {??????? Title="All your base are belong to us",??????? Publisher=Publishers[1],??????? Authors=new[]{Authors[3]},??????? PageCount=1205,??????? Price=35.5M,??????? PublicationDate=new DateTime(2006, 5, 5),??????? Isbn="0-333-77777-2",??????? Subject=Subjects[2]????? },????? new Book {??????? Title="Bonjour mon Amour",??????? Publisher=Publishers[0],??????? Authors=new[]{Authors[1], Authors[0]},??????? PageCount=50,??????? Price=29M,??????? PublicationDate=new DateTime(1973, 2, 18),??????? Isbn="2-444-77777-2",??????? Subject=Subjects[1]????? }??? };? }
LINQ左聯(lián)接的問題
ibeautiful
2018-12-06 23:09:34