.Net Hive

A blog about Microsoft .Net Platform & other industry happenings

Language Integrated Query – LINQ

In my previous post, I introduced some of the extensions provided in ADO.NET 3.5 and I told you that we will be talking about each of the extension individually later on.

To start, today I have picked LINQ. Language Integrated Query aka LINQ, is all about achieving query operations in a well comprehensive and open form. It allows you to query data regardless of any type, May it be relational databases, XML or Objects. Considering this phenomenon of querying across any kind of data source, this will be a great breakthrough and major shift in how our programmers deal with data related tasks. Having the possibility at your fingertip to query any kind of data will really change the way we program.

LINQ provides a set of patterns for querying any kind of data, whether it has a particular object model implemented or not. LINQ specifies how an object can be a “queryable,” with all the basic query operations needed, like: SELECT, WHERE, GROUP BY, ORDER BY, JOIN along with many other new operations like SelectMany, GroupJoin, TakeWhile, SkipWhile, ElementAt etc.

The syntax is the part where the real ease and flexibility shows up. You can have any language, that is supported on .Net Platform;  to be able to support LINQ.  C# and VB.NET has this built in features to interfacing LINQ. An example, where you have an array of Employees objects and you want a name of an employees having salary greater then 10000, you can write this query that looks like this:

var query_results =  from c in Employees
                                           let sal = 10000
                                           where c.Salary < sal
                                           select c.Name;

foreach (var result in query_results)

The above example mimics a scenario for a relational database. What happens if we have a dynamic data source like an RSS feed? Here is the simple example for that

XElement orders = …;
int order_amount = Convert.ToInt32(orders.Element(“amount”));

As you have seen that, LINQ is a way to go for data related operations due its flexibility and its data source independence. I have tried to give you an overview of LINQ but there are whole lot of information and resources available for you to get your hands dirty in LINQ :). I’m including some of the references below for your help:

Happy Reading

Waqas Ahmed

Filed under: .Net, , , ,

Data Access with ADO.NET 3.5 – Extensions

In our last post, we looked into objectives of the ADO.NET 3.5 which get shipped with VS 2008 Service Pack1. To achieve those objectives, we have some very good language extensions for ADO.NET 3.5. in C# and VB.

  • LINQ extension for VB 9.0 and C# 3.0 language provides a set of standard query operators to query many different kind of data sources using SQL like syntax. This extension for VB and C# implements LINQ pattern.
  • LINQ to Object is the default implementation for LINQ. It enables the developer to execute queries against a data persisted in memory that implements IEnumerable or IQueryable interface.
  • LINQ to SQL extension to LINQ to Objects provide an O/RM tool to generate and manage classes for business objects and to persist their instances in SQL Server tables.
  • LinqDataSource server control introduced in ASP.NET 3.5 simplifies the headache to bind data enabled web controls to business objects created with LINQ to SQL.

Later on we will discuss each of the above mentioned extensions individually, to look under the hood of ADO.NET 3.5 and it’s working.

Until than happy reading 🙂

Waqas Ahmed

Filed under: .Net, , , ,

Data Access with ADO.NET 3.5 – Primary Objectives

Release of Service Pack 1 for Visual Studio 2008 brought us some of the major lift updates .Net Framework. One of those update is ADO.NET 3.5 along with whole set of new languages and methodologies for data access as compare to .Net Framework 2.0. Some of the primary objectives of these updates are:

  • Increase developers productivity with minimal code required to achieve certain database/data related tasks.
  • Allow strong-type checking of database query syntax for relational data and their resultsets.
  • Enhancements to DataSet integration with multi Tier application architecture.
  • Enabled data intensive Winform projects with a local, synchronizable data cache derived from SQL Server Compact Edition v3.5
  • Enabled data intensive Winform projects with a local, synchronizable data cache derived from SQL Server Compact Edition v3.5.
  • Eliminate often known as the resistant mismatch between the code for data management, which usually involves SQL and OOPs programming.

Next time we will talk about the introduction of different extensions to LINQ related components /frameworks.

Waqas Ahmed

Filed under: .Net, , , ,




.Net Hive @ Twitter

Blog Directory by Blog Flux
Computers/Tech blogs