.Net Hive

A blog about Microsoft .Net Platform & other industry happenings

Data Access with ADO.NET 3.5 – LINQ to SQL

Alright, going back to our series where we discussed LINQ and all related extensions. Lat time we discussed LINQ itself. Today, we are going to talk about LINQ to SQL extension.

Well LINQ to SQL is more than just a LINQ implementation for relational databases; it includes a very easy to use graphical object/relational mapping tool. This tool generates an entity class for each table you select from the SQL Server database to which the project connects. The tool also generates an association that relates to each foreign key constraint. Associations eliminate the need to specify joins in LINQ queries that include projections of fields from related tables. The ability to navigate associations is an important feature of LINQ implementations and the Entity Framework.

The advantage of moving from the relational model of tables, rows, and keys to the entity model of entity classes, entity instances, and associations is that entities usually do represent business objects, such as customers, partners, vendors, employees, products, and services. An entity model enables developers to design real world objects with custom properties, associations, and behaviors suited to the organization’s business processes.

LINQ to SQL is intended for 1:1 mapping of tables:entities, although it does have limited support for entity inheritance of the Table per Hierarchy (TPH) type based on discriminator columns. Read only entities can be based on views or stored procedures. The Entity Framework’s Entity Data Model supports joining multiple tables to create a single updatable entity, as well as several types of entity inheritance.

This entry covers a brief overview about LINQ to SQL extension or you can say a LINQ to SQL in a nutshell. I will try to give some examples about the auto generated classes for entities which entity framework create, in some later post.

Till than, Happy Reading.

Waqas Ahmed

Filed under: .Net, , ,

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)
{
          Response.Write(result.ToString());
}

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, , , ,

Pages

Categories

Archives

.Net Hive @ Twitter

Blog Directory by Blog Flux
Computers/Tech blogs