Download - Language Integrated Query
Language Integrated Query
Mike TaultyDeveloper & Platform GroupMicrosoft [email protected] http://www.mtaulty.com
Agenda
Why do we want LINQ?How are query capabilities added to the languages?What is LINQ enabled in VS2008 & Fx 3.5?What is LINQ enabled after VS2008?
Why do we need LINQ?
My Code
“API”
SQL XML
Query As String Loosely typed result
Objects
Language Syntax for Querying
from itemName in srcExpr join itemName in srcExpr on keyExpr equals keyExpr
(into itemName)?let itemName = selExprwhere predExprorderby (keyExpr (ascending | descending)?)*select selExprgroup selExpr by keyExpr into itemName query-body
LINQ brings us closer to data
VB9
LINQ in the Languages
Many new language features in VB9 & C# 3
XML Literals
Relaxed Delegates
C# 3.0
Extension Methods
Object Initialisers
Anonymous Types
Implicit Typing
Lambdas
Collection Initialisers
Partial Methods
VB9
LINQ in the Languages
Some are enablers for LINQ
C# 3.0
Collection InitialisersXML Literals
Relaxed Delegates
Partial Methods
LINQ Language Features
Query Pattern -> Language Features
Query Pattern -> Language Features
Compiler looks for extension methods which extend
IEnumerable<T> IQueryable<T>
IEnumerable<T> & IQueryable<T>
IEnumerable – query executed piece by piece
IQueryable – query executed in one go
whereselect
Capture & Execute
Execute Execute
where select
LINQ in VS2008 & Fx 3.5
LINQ
Objects (IE)
XML (IE) SQL (IQ)
DataSet (IE)
LINQ to SQL, XML and DataSet
Beyond VS 2008 – ADO.NET V3.0
DataStore (SQL, Oracle, etc)
ADO.NET Provider (e.g. SqlClient, OracleClient, etc)
ADO.NET V2.0
ADO.NET Entity Provider (EntityClient)
Conceptual Data Model
Query with LINQ to Entities, Entity SQL
ADO.NET V3.0 & Entity Framework
Map
ping
LINQ to Entities
Summary
LINQ plumbed into VB9 and C#3.0 LanguagesLots of other language features too
LINQ enabled in .NET Framework V3.5Objects, SQL, XML, DataSet
LINQ enabled post .NET Framework V3.5Entities...
Resources
http://msdn.microsoft.com/vstudio MSDN LINQ Developer Centre
http://tinyurl.com/3e2qpo ADO.NET Team Blog
http://blogs.msdn.com/adonet
MSDN in the UK
Visit http://msdn.co.uk NewsletterEventsNugget VideosBlogs
© 2007 Microsoft Ltd. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the
date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.