linq 2 sql
Download
Skip this Video
Download Presentation
LINQ 2 SQL

Loading in 2 Seconds...

play fullscreen
1 / 34

LINQ 2 SQL - PowerPoint PPT Presentation


  • 123 Views
  • Uploaded on

LINQ 2 SQL. By, Shahzad Sarwar. What you should know, before starting. Anonymous function Anonymous type Anonymous Methods Lamda expression Collection Initializers Object Initializers Extension methods Type Inference

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' LINQ 2 SQL' - jaunie


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
linq 2 sql

LINQ 2 SQL

By, Shahzad Sarwar

what you should know before starting
What you should know, before starting
  • Anonymous function
  • Anonymous type
  • Anonymous Methods
  • Lamda expression
  • Collection Initializers
  • Object Initializers
  • Extension methods
  • Type Inference
  • Automatic properties
  • Partial Methods
  • Generic
  • Projection (Later)
  • Expression Tree (Later)
slide3
What is the problem?

Class!=Data

  • 1. strongly-typed queries , what ?
  • 2. strongly-typed results
  • Benefits

1. IntelliSense

2. Compile-time error checking.

slide4
What is Linq to SQL?

1.OR Mapper API

2.Syntax to query ( LINQ to objects )

3.Tools

  • What r OR Mappers(OR/M)?
  • Not ORM?
  • What is Object Role Modeling (ORM)?
    • Associated language FORML (Formal Object-Role Modeling Language)
    • Supported by Visio and Microsoft Architect
    • References: http://www.orm.net/
current solutions in market
Current Solutions in market
  • .NET Persistence
  • BBADataObjects
  • DataObjects.NET
  • Data Tier Modeler for .NET
  • DotNorm
  • Eldorado.NET
  • Enterprise Core Objects (ECO™)
  • Entity Broker
  • eXpress Persistent Objects for .NET
  • FastObjects.NET
  • JC Persistent Framework
  • LLBLGen Pro
  • ModelWorks
  • Nhibernate
  • Nolics.NET
current solutions in market1
Current Solutions in market
  • Norm
  • Norpheme
  • ObjectBroker
  • ObjectSpaces
  • ObjectSpark
  • Objectz.NET
  • OJB.NET
  • OPF.Net (Object Persistent Framework)
  • ORM.NET
  • Pragmatier Data Tier Builder
  • RapTier
  • Sisyphus Persistence Framework
  • TierDeveloper
  • Bob.NET
  • ObjectPersistor.NET
  • Genome
a view of linq
A view of LINQ

LINQ Consist of :

  • Total 6 LINQ implementations
  • 3 general LINQ technologies
  • 2 related to relational databases (OR/M)
  • 1 Future Technologies
  • LINQ to Objects

Over objects , system.linq

  • LINQ to Dataset

over dataset ( LINQ to objects + system.data.dataextension )

  • LINQ to SQL- DLinq

Direct sql server ( system.data.linq )

slide8
LINQ to entities
  • entities framework ( a part of the ADO.NET Entity Framework which allows LINQ query capabilities)
  • The Entity Data Model (EDM) is a conceptual data {System.data.entity}
  • LINQ to XML = xlinq
  • The low-level XmlReader/XmlWriter API in .NET today. {System.Xml.Linq}
  • PLINQ

Query execution engine accepts any LINQ-to-Objects or LINQ-to-XML query and automatically utilizes multiple processors or cores for execution when they are available.

references
References

[LINQ to Dataset]

  • http://blogs.msdn.com/adonet/archive/2007/01/26/querying-datasets-introduction-to-linq-to-dataset.aspx
  • http://msdn.microsoft.com/en-us/vbasic/bb688086.aspx
  • http://msdn.microsoft.com/en-us/library/bb386977.aspx
  • http://www.danielmoth.com/Blog/2007/07/linq-to-dataset.html
  • http://channel9.msdn.com/posts/DanielMoth/LINQ-to-DataSet/

[LINQ to entities]

  • http://msdn.microsoft.com/en-us/library/bb386964.aspx
  • http://dotnetaddict.dotnetdevelopersjournal.com/adoef_vs_linqsql.htm
  • http://blogs.msdn.com/kaevans/archive/2008/01/29/linq-to-sql-vs-linq-to-entities-smackdown.aspx
  • http://msdn.microsoft.com/en-us/library/cc161164.aspx
slide14
What is difference LINQ to SQ L and LINQ to Entities?
  • 1:1 vs many to many , complex mapping
  • sql only , any database .... so run in database specfic pattern.

http://msdn.microsoft.com/en-us/library/cc161164.aspx

  • Sample Application on the fly
  • Sample Application:

Sample Add , delete , edit

Example

What next ??????????????????????????? It is over…

datacontext
DataContext
  • Connection like class (Mixture of a lot of objects)
  • Caching n change tracking
  • Example
    • Log
    • ExecuteCommand
    • GetTable
    • ExecuteQuery
    • Refresh
    • ObjectTrackingEnabled
    • Transaction
  • Cases:
    • Nested Query
    • Cache Query / Multiple context
    • ToList()
  • What is Projection?
context management
Context Management
  • Four Approaches

1. Create a new Context for each atomic operation (Application level management)

Problem: pass data objects or the data context itself around to other components in your application.

E.g.: if you use business objects there\'s no real clean way to get a context passed between business objects.

2.Create a global DataContext and handle all operations against this single DataContext object

Problem:

In other words if you have multiple simulataneous data operations that might not be directly linked/atomic

Not possible to do simple update.....?

and Options such ObjectTrackingEnabled or DeferredLoadingEnabled can\'t be set easily

Works for desktop , not for Web because of threading ........

context management1
Context Management

3.Create a thread specific DataContext

Request specific DataContext that is tied to the active thread,Web request to the active ASP.NET HttpContext.

Example

Factory Pattern

4. Create a per business object DataContext

architecture guide lines
Architecture Guide Lines

References:

  • http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/2007/05/10/9322.aspx
  • http://jonkruger.com/blog/2008/02/10/linq-to-sql-in-disconnectedn-tier-scenarios-saving-an-object/
  • http://andrewtokeley.net/archive/2008/07/06/mocking-linq-to-sql-datacontext.aspx
  • http://devlicio.us/blogs/derik_whittaker/archive/2008/05/21/using-linq-s-datacontext-to-re-create-your-database-for-testing.aspx
  • http://www.west-wind.com/weblog/posts/246222.aspx
  • http://blogs.msdn.com/mirceat/archive/2008/03/13/linq-framework-design-guidelines.aspx
  • http://msdn.microsoft.com/en-us/library/bb882661.aspx
code generation
Code Generation
  • 2 Options
    • VS Studio OR Designer
    • SQLMetal
  • Code Understanding
  • Explore
    • XML Mapping file
    • Generated classes

dataConext ,Database, Table, relationships

Example

query pipeline
Query pipeline
  • LINQ 2 Objects = IEnumerable
  • LINQ 2 SQL= IQueryable

public interface IQueryable : IEnumerable

{

Type ElementType { get; }

Expression Expression { get; }

IQueryProvider Provider { get; }

}

  • What is Expression Tree?

a method of translating executable code into data.

  • Add-ons:
      • Query Visualizer
      • Expression Tree Visualizer
      • Example
  • Out of processor , Grammar , sql processor
  • Various Stages ( Out of scope )
  • 1-Many mapping b/q LINQ grammer to db sql

References:

  • http://blogs.msdn.com/charlie/archive/2008/01/31/expression-tree-basics.aspx
  • http://blogs.msdn.com/charlie/archive/2008/02/13/linq-farm-seed-using-the-expression-tree-visualizer.aspx
joins n lazy loading
Joins n Lazy Loading
  • Types of Joins
    • Inner Join
    • Left Outer Join
    • Right Outer Join
    • Cross Join
  • Example
  • LINQ implementation of Joins
  • Deferred Loading of objects
  • DataLoadOptions/DeferredLoadingEnabled property
  • AssociateWith Property
linqdatasource
LINQDataSource
  • Like sqlDataSource
  • Example 1 (Wizard View , declarative View )
  • Overriding events
  • Selecting event
  • Example 2
using store procedure
Using Store Procedure
  • Add Store procedures to Model
  • Example
  • Add function to Models
  • Example
  • Difference b/w Store Procedure n function
    • for computations , for Business logic
    • Functions can be called inside select/update/delete stmt but not the procedures.
linq2sql customization
LINQ2SQL Customization
  • By Store Procedure
  • Example
  • Object validation (Partial classes)
  • Example
  • Customize entity class ( 1 to m mapping )
  • Example
inheritance
Inheritance
  • In OR Mapping, 3 Type
  • Example
linq dev tools
LINQ Dev. Tools
  • Visual LINQ Query Builder

through a friendly interface

http://code.msdn.microsoft.com/vlinq

[Demo]

  • LINQPad

http://www.linqpad.net/

Development tool

[Demo]

performance
Performance
  • Benchmark 1

References

  • http://blogs.msdn.com/ricom/archive/2007/06/22/dlinq-linq-to-sql-performance-part-1.aspx
  • http://blogs.msdn.com/ricom/archive/2007/06/22/dlinq-linq-to-sql-performance-part-1.aspx
performance1
Performance
  • Adventure Db , Store procedure
  • So, comparing to the raw ADO.NET - DAAB is 8% slower and LINQ is 28% slower.Comparing to DAAB - LINQ is 18% slower.

Reference:

  • http://alexpinsker.blogspot.com/2007/07/benchmarking-linq-vs.html
performance2
Performance
  • But consider
    • Productivity
    • SQL being first class language in VS
    • Caching of DB.
    • Change tracking optimization

So Over a Great Milestone in Development process

what is left
What is Left………………..
  • Design Pattern for LINQ to SQL
  • XLINQ
  • LINQ to Dataset
  • LINQ to entities
  • PLINQ
  • n…………………….
  • …..
  • …………..
  • ………………..
  • So Wait for Next presentation on LINQ …………………
ad