This article explains the basic use of a WCF Service and how to use LINQ in an ASP.Net application.
Getting Started:
Creating a ASP.NET Application:
- Open Visual Studio 2010.
- Go to File => New => Project
- Select Web in installed templates
- Select ASP.NET Web Application
- Enter the Name and choose the location.
Click OK.
And now using mouse right click Add New Linq to SQL Classes from installed Data template.
![img1.jpg]()
Image 1.
Now drag and drop data table using server explorer.
Note - You can rename table name also using double click.
![img2.jpg]()
Image 2.
After adding tables as you can see in web.config there is a connection string that has been added automatically.
<connectionStrings>
<add name="ApplicationServices" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnetdb.mdf;User Instance=true"
providerName="System.Data.SqlClient" />
</connectionStrings>
Now add a new WCF service using Add New Item.
Image 3.
Service1.svc
public void DoWork()
{
}
//This function gets all active events
public IEnumerable<Events> GetLatestEvents()
{
DataClasses1DataContext _context = new DataClasses1DataContext();
var dateTime = DateTime.Now.ToString();
var events = (from r in _context.Jobs
orderby r.InsertedDate descending
select new Events
{
Title = r.Job_Title,
Description = r.Job_Desc,
City = r.Job_City,
State = r.Job_State,
Country = r.Job_Country,
StartingOn = DateTime.Parse(r.Date_Sent),
ExpiringOn = DateTime.Parse(r.Date_Expires)
});
return events.AsEnumerable();
}
IService1.cs
[ServiceContract]
public interface IService1
{
[OperationContract]
void DoWork();
[OperationContract]
IEnumerable<Events> GetLatestEvents();
}
[DataContract]
public class Events
{
string title;
string description;
string category;
string city;
string state;
string country;
DateTime startingOn;
DateTime expiringOn;
[DataMember]
public string Title { get { return title; } set { title = value; } }
[DataMember]
public string Description { get { return description; } set { description = value; } }
[DataMember]
public string Category { get { return category; } set { category = value; } }
[DataMember]
public string City { get { return city; } set { city = value; } }
[DataMember]
public string State { get { return state; } set { state = value; } }
[DataMember]
public string Country { get { return country; } set { country = value; } }
[DataMember]
public DateTime StartingOn { get { return startingOn; } set { startingOn = value; } }
[DataMember]
public DateTime ExpiringOn { get { return expiringOn; } set { expiringOn = value; } }
}
Now add a service reference to the application.
Image 4.
After adding a service refrence to the application, a service model is added in web.config which has all service details and properties.
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBinding_IService1" closeTimeout="00:01:00"
openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
maxBufferSize="200000000" maxBufferPoolSize="200000000" maxReceivedMessageSize="200000000"
messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
useDefaultWebProxy="true">
<readerQuotas maxDepth="32" maxStringContentLength="200000" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<security mode="None">
<transport clientCredentialType="None" proxyCredentialType="None" realm="" />
<message clientCredentialType="UserName" algorithmSuite="Default" />
</security>
</binding>
</basicHttpBinding>
</bindings>
<client>
<endpoint address="http://localhost:31533/Service1.svc" binding="basicHttpBinding"
bindingConfiguration="BasicHttpBinding_IService1" contract="ServiceReference1.IService1"
name="BasicHttpBinding_IService1" />
</client>
<behaviors>
<serviceBehaviors>
<behavior name="">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
</system.serviceModel>
Now start work on the page. Drag and drop a GridView data control onto the page.
Default.aspx
<div>
<asp:GridView ID="GridView1" runat="server" BackColor="LightGoldenrodYellow" Width="500px"
AutoGenerateColumns="False"
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" />
<Columns>
<asp:HyperLinkField DataTextField="Title" HeaderText="Title" />
<asp:BoundField DataField="City" HeaderText="City" />
<asp:BoundField DataField="State" HeaderText="State" />
<asp:BoundField DataField="Country" HeaderText="Country" />
<asp:BoundField DataField="StartingOn" HeaderText="StartingOn"/>
<asp:BoundField DataField="ExpiringOn" HeaderText="ExpiringOn"/>
</Columns>
</asp:GridView>
</div>
Default.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using WCFLINQSample.ServiceReference1;
namespace WCFLINQSample
{
public partial class Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Service1Client serviceClient = new Service1Client();
GridView1.DataSource = serviceClient.GetLatestEvents();
GridView1.DataBind();
}
}
}
Now time to run the application to see the result.
![img5.jpg]()
Image 5.