Microsoft presented the LINQ (Language Integrated Query) Project , a new syntax for querying databases and objects from C# 3.0. LINQ has been founded on generics, anonymous methods and nullable types that are going to be delivered in C# 2.0. The SQL integration is amazing. For example if you want to define a table created with the following DDL:

create table Orders (
OrderID nvarchar(32) primary key not null,
Customer nvarchar(32) not null,
Amount int
)

the CLR representation will be like next one:

[Table(Name=”Orders”)]
public class Order {
[Column(DbType=”nvarchar(32) not null”, Id=true)]
public string OrderID;

[Column(DbType=”nvarchar(32) not null”)]
public string Customer;

[Column]
public int? Amount;
}

I suppose that in the future the database model will be enough to create the database DDL script, data class definitions and data access layers using a code generator.