LINQ also supports the joining of data from different collections using a familiar SQL-like join syntax.
Here are sample example of this.
In this example there is book class which has PublisherId field , this fields contains only numeric values.
If we need to display Publisher Name we have to join this book class object to Publishers class object which has Publisher Name of each Publisher Id key.
In this example we display book title from Books class and it's publisher name from publishers class.
C# Example :
VB.net Example :
Here are sample example of this.
In this example there is book class which has PublisherId field , this fields contains only numeric values.
If we need to display Publisher Name we have to join this book class object to Publishers class object which has Publisher Name of each Publisher Id key.
In this example we display book title from Books class and it's publisher name from publishers class.
C# Example :
public class Books { public string Title { get; set; } public string ISBN { get; set; } public DateTime ReleaseDate { get; set; } public int Pages { get; set; } public int PublisherId { get; set; } } public class Publisher { public int PublisherId { get; set; } public string PublisherName { get; set; } } protected void Page_Load(object sender, EventArgs e) { var bookslist = GetBooksList(); var publisherslist=GetPublishers(); var query = from bl in bookslist join p in publisherslist on bl.PublisherId equals p.PublisherId select new { bl.Title,p.PublisherName}; this.gvBooks.DataSource = query; this.gvBooks.DataBind(); } public List<Books> GetBooksList() { return new List<Books> { new Books { Title="ASP.NET",ISBN="asp1",ReleaseDate= DateTime.Parse( "11/11/2010") ,Pages=200,PublisherId=1}, new Books { Title="C#.NET",ISBN="c#2",ReleaseDate= DateTime.Parse( "10/11/2010") ,Pages=500,PublisherId=1}, new Books { Title="VB.NET",ISBN="vb3",ReleaseDate= DateTime.Parse( "5/5/2009") ,Pages=400,PublisherId=1}, new Books { Title="SQL Server",ISBN="sql4",ReleaseDate= DateTime.Parse( "6/9/2010"),Pages=300,PublisherId=2 }, new Books { Title="JAVA",ISBN="java5",ReleaseDate= DateTime.Parse( "8/5/2011"),Pages=400,PublisherId=3 } }; } public List<Publisher> GetPublishers() { return new List<Publisher> { new Publisher { PublisherId=1, PublisherName="Microsoft" } , new Publisher { PublisherId=2, PublisherName="Wrox" } , new Publisher { PublisherId=3, PublisherName="Sun Publications" } }; }
VB.net Example :
Public Class Books Public Property Title() As String Public Property ISBN As String Public Property ReleaseDate As Date Public Property Pages As Integer Public Property PublisherId As Integer End Class Public Class Publisher Public Property PublisherId() As Integer Public Property PublisherName() As String End Class Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Dim bookslist = GetBooksList() Dim publisherslist = GetPublishers() Dim query = From bl In bookslist _ Join p In publisherslist On p.PublisherId Equals bl.PublisherId _ Select bl.Title, p.PublisherName gvBooks.DataSource = Query gvBooks.DataBind() End Sub Public Function GetBooksList() As List(Of Books) Dim lstBooks As New List(Of Books) From { _ New Books With {.Title = "ASP.NET", .ISBN = "asp1", .ReleaseDate = DateTime.Parse("11/11/2010"), .Pages = 200, .PublisherId = 1}, _ New Books With {.Title = "C#.NET", .ISBN = "c#2", .ReleaseDate = DateTime.Parse("10/11/2010"), .Pages = 500, .PublisherId = 1}, _ New Books With {.Title = "VB.NET", .ISBN = "vb3", .ReleaseDate = DateTime.Parse("5/5/2009"), .Pages = 400, .PublisherId = 1}, _ New Books With {.Title = "SQL Server", .ISBN = "sql4", .ReleaseDate = DateTime.Parse("6/9/2010"), .Pages = 300, .PublisherId = 2}, _ New Books With {.Title = "JAVA", .ISBN = "java5", .ReleaseDate = DateTime.Parse("8/5/2011"), .Pages = 400, .PublisherId = 3}} Return lstBooks End Function Public Function GetPublishers() As List(Of Publisher) Dim publishers As Publisher() = { _ New Publisher With {.PublisherId = 1, .PublisherName = "Microsoft"}, _ New Publisher With {.PublisherId = 2, .PublisherName = "Wrox"}, _ New Publisher With {.PublisherId = 3, .PublisherName = "Sun Publications"} _ } Return New List(Of Publisher)(publishers) End Function
No comments:
Post a Comment