Reader Level:
Articles

Select and Delete Data Using LINQ With WCF

By Vijay Prativadi on November 10, 2012
Today, in this article let's play around with Select and Delete Data concept in LINQ.
  • 0
  • 0
  • 4186

Introduction

Question: What is select data using LINQ with WCF?

In simple terms "It enables selection of data using LINQ queries via WCF Service".

Step 1: Create a new webform project

Output1.png

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

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WCFAppusingLINQ.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="Select Data with LINQ using WCF" 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="Select Data" Font-Names="Verdana" Width="213px"
                            BackColor="Orange" Font-Bold="True" OnClick="Button1_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"
                            AutoGenerateColumns="False">
                            <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" />
                            <Columns>
                                <asp:BoundField DataField="EmpId" HeaderText="Id" />
                                <asp:BoundField DataField="FirstName" HeaderText="FirstName" />
                                <asp:BoundField DataField="LastName" HeaderText="LastName" />
                                <asp:BoundField DataField="Age" HeaderText="Age" />
                            </Columns>
                        </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;
using WCFAppusingLINQ.ServiceReference1;
namespace WCFAppusingLINQ
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
        }
        protected void Button1_Click(object sender, EventArgs e)
        {
            GridView1.DataSource = objClient.GetAllEmployees();
            GridView1.DataBind();
        }
        #region Instance MembersService1Client objClient = new Service1Client();
        #endregion
    }
}


Step 4: Create a new "WCF Service Application" project, as in:

Output1.1.png

Step 5: The complete code of IService1.cs looks like this:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;
namespace WCFLINQ
{
    // NOTE: You can use the "Rename" command on the "Refactor" menu to change
       the interface name "IService1" in both code and config file together.
    [ServiceContract]
    public interface IService1
    {
        [OperationContract]
        List<Employee> GetAllEmployees();
    }
}


Step 6: The complete code of Service1.svc.cs looks like this:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;
namespace WCFLINQ
{
    // NOTE: You can use the "Rename" command on the "Refactor" menu to change the class name "Service1" in code, svc and config file together.
    public class Service1 : IService1
    {
        public List<Employee> GetAllEmployees()
        {
            var query = (from r in objEntities.Employee select r);
            return query.ToList();
        }
        #region Instance MembersCompanyEntities objEntities = new CompanyEntities();
        #endregion
    }
}


Step 7: The output of the application looks like this:

Output2.png

Step 8: The output of the data retrieved output operation result looks like this:

Output3.png

Question: What is deleting data using LINQ with WCF?

In simple terms "It enables deletion of data using LINQ queries via a WCF Service".

Step 1: Create a new webform project

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

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WCFDeleteUsingLINQApp.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="Delete Data using LINQ with WCF" Font-Bold="true"
                            Font-Size="Large" Font-Names="Verdana" ForeColor="Maroon"></asp:Label>
                    </td>
                </tr>
                <tr>
                    <td>
                        <asp:Label ID="Label2" runat="server" Text="Please Enter Employee Id" ForeColor="Brown"
                            Font-Bold="true" Font-Size="Medium" Font-Names="Verdana"></asp:Label>
                    </td>
                    <td>
                        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
                    </td>
                </tr>
                <tr>
                    <td colspan="2" align="center">
                        <asp:Button ID="Button1" runat="server" Text="Delete Data" Font-Names="Verdana" Width="213px"
                            BackColor="Orange" Font-Bold="True" OnClick="Button1_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" AutoGenerateColumns="false"
                            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" />
                            <Columns>
                                <asp:BoundField DataField="EmpId" HeaderText="Id" />
                                <asp:BoundField DataField="FirstName" HeaderText="FirstName" />
                                <asp:BoundField DataField="LastName" HeaderText="LastName" />
                                <asp:BoundField DataField="Age" HeaderText="Age" />
                            </Columns>
                        </asp:GridView>
                    </td>
                </tr>
                <tr>
                    <td colspan="2" align="center">
                        <asp:Label ID="Label3" runat="server" Font-Bold="true" Font-Size="Medium" Font-Names="Verdana"></asp:Label>
                    </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;
using WCFDeleteUsingLINQApp.ServiceReference1;
namespace WCFDeleteUsingLINQApp
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
        }
        protected void Button1_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(TextBox1.Text))
            {
                Label3.Text = "Please Enter Some Values";
                Label3.ForeColor = System.Drawing.Color.Red;
            }
            else
            {
                objClient.DeleteEmpData(int.Parse(TextBox1.Text));
                GridView1.DataSource = objClient.GetAllEmployees();
                GridView1.DataBind();
                Label3.Text = "Records Deleted Successfully";
                Label3.ForeColor = System.Drawing.Color.Green;T
                    extBox1.Text = string.Empty;
            }       
        }
        #region Instance MembersService1Client objClient = new Service1Client();
        #endregion
    }
}

Step 4: Create a new "WCF Service Application" project.

Step 5: The complete code of IService1.cs looks like this:

using System;
using System.Collections.Generic;
using
System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;
namespace WCFLINQDelete
{
    // NOTE: You can use the "Rename" command on the "Refactor" menu to change
       the interface name "IService1" in both code and config file together.
    [ServiceContract]
    public interface IService1
    {
        [OperationContract]
        List<Employee> GetAllEmployees();
        [OperationContract]
        void DeleteEmpData(int a);
    }
}


Step 6: The complete code of Service1.svc.cs looks like this:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;
namespace WCFLINQDelete
{
    // NOTE: You can use the "Rename" command on the "Refactor" menu to change the class name "Service1" in code, svc and config file together.
    public class Service1 : IService1
    {
        public List<Employee> GetAllEmployees()
        {
            var query = from r in objEntities.Employee select r;
            return query.ToList();
        }
        public void DeleteEmpData(int a)
        {
            objEntities.DeleteEmployeeData(a);
        }
        #region Instance MembersCompanyEntities objEntities = new CompanyEntities();
        #endregion
    }
}


Step 7: The output of the application looks like this:

Output2 (1).png

Step 8: The output of the data deleted output operation result looks like this:

Output3 (1).png

I hope this article is useful for you.. I look forward for your comments and feedback.. Thanks Vijay Prativadi

Vijay Prativadi

Hey Everyone, It's Vijay. I am SDE mostly up on Microsoft Technologies. If you are thinking to know what I do mostly when at work. I get a chance to work upon few Microsoft technologies. All the way along my core tech... Read more

COMMENT USING

Trending up