Play with Last() and LastOrDefault() in LINQ-to-Entities

Introduction

Today, in this article let's play around with one of the interesting and most useful concept in LINQ.

Question: What are these?

Please refer to the below table:

Image1.png

Step 1: Create a new WebForm project

Image2.jpg

Step 2: The complete code of WebForm1.aspx looks like this

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="LAST_LASTorDefaultLINQApp.WebForm1" %>

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head id="Head1" runat="server">

    <style type="text/css">

        .grid

        {

            margin-top: 50px;

        }

    </style>

    <title></title>

</head>

<body>

    <form id="form1" runat="server">

    <center>

        <div>

            <table>

                <tr>

                    <td colspan="2" align="center">

                        <asp:Label ID="Label1" runat="server" Text="Play with Last/LastOrDefault using LINQ"

                            Font-Bold="true" Font-Size="Large" Font-Names="Verdana" ForeColor="Maroon"></asp:Label>

                    </td>

                </tr>

                <tr>

                    <td colspan="2" align="center">

                        <asp:Button ID="Button1" runat="server" Text="Last()" Font-Names="Verdana" Width="213px"

                            BackColor="Orange" Font-Bold="True" OnClick="Button1_Click" />

                    </td>

                </tr>

                <tr>

                    <td colspan="2" align="center">

                        <asp:Button ID="Button2" runat="server" Text="LastOrDefault()" Font-Names="Verdana"

                            Width="213px" BackColor="Orange" Font-Bold="True" OnClick="Button2_Click" />

                    </td>

                </tr>

                <tr>

                    <td colspan="2" align="center">

                        <asp:GridView ID="GridView1" runat="server" CssClass="grid" BackColor="LightGoldenrodYellow"

                            BorderColor="Tan" BorderWidth="1px" CellPadding="2" ForeColor="Black" GridLines="None">

                            <AlternatingRowStyle BackColor="PaleGoldenrod" />

                            <FooterStyle BackColor="Tan" />

                            <HeaderStyle BackColor="Tan" Font-Bold="True" />

                            <PagerStyle BackColor="PaleGoldenrod" ForeColor="DarkSlateBlue" HorizontalAlign="Center" />

                            <SelectedRowStyle BackColor="DarkSlateBlue" ForeColor="GhostWhite" />

                            <sortedascendingcellstyle backcolor="#FAFAE7" />

                            <sortedascendingheaderstyle backcolor="#DAC09E" />

                            <sorteddescendingcellstyle backcolor="#E1DB9C" />

                            <sorteddescendingheaderstyle backcolor="#C2A47B" />

                        </asp:GridView>

                    </td>

                </tr>

            </table>

        </div>

    </center>

    </form>

</body>

</html>

 
Step 3: The complete code of WebForm1.aspx.cs looks like this
 

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

namespace LAST_LASTorDefaultLINQApp

{

    public partial class WebForm1 : System.Web.UI.Page

    {

        protected void Page_Load(object sender, EventArgs e)

        {

        }

        protected void Button1_Click(object sender, EventArgs e)

        {

            var query = objEntities.Employee.ToList<Employee>().Last();

            var querylist = new List<Employee>

            {

                query

            };

            GridView1.DataSource = querylist;

            GridView1.DataBind();

        }

        protected void Button2_Click(object sender, EventArgs e)

        {

            var query = objEntities.Employee.ToList<Employee>().LastOrDefault();

            var querylist = new List<Employee>

            {

                query

            };

            GridView1.DataSource = querylist;

            GridView1.DataBind();
        }

        #region Instance Members

          CompanyEntities objEntities = new CompanyEntities();

        #endregion

    }

}

Step 4: The output of the application looks like this

Image3.jpg

Step 5: The Last () operation output of the application looks like this

Image4.jpg

Next Recommended Reading Entity Framework vs LINQ to SQL

MVC Corporation
MVC Corporation is consulting and IT services based company.