Download presentation
Presentation is loading. Please wait.
Published byMohammed Simpson Modified over 9 years ago
1
© Logica 2008. All rights reserved ADO vNext LINQ LINQ to SQL Entity Framework Freek Leemhuis freek.leemhuis@logica.com
2
Microsoft en ORM – de historie WinFS
3
Defining LINQ and LINQ to SQL Bestaat uit taal uitbreidingen in C# 3.0 en VB 9.0 Uniforme manier om queries uit te voeren op objecten Een framework (OR mapper) voor het mappen van data classes op SQL Server tables, views en stored procedures. LINQ to SQL LINQ
4
LINQ parts C# 3.0C# 3.0 VB 9.0VB 9.0 OthersOthers LINQLINQ Interne query engine LINQ to Objects.Net APIs LINQ to Datasets LINQ to XML Providers LINQ to SQL LINQ to Entities IQueryableIEnumerable
5
Taaluitbreidingen Extension methods Partial Methods Lambda expressions Anonymous types Object initializers Local variable inference Linq keywords and operators
6
Extention methods Local variable inference Anonymous types Demo
7
De basis van LINQ LINQ queries gaan over elementen uit sequences Een sequence is een object dat de IEnumerable interface implementeert Bijvoorbeeld: String[] namen = {“Maarten”, “Ralph”, “Freek”}; Selectie = namen.Where(n=>n.Contains(“a”)).Orderby(n=>n).Select(n=>n.ToUpper());
8
IEnumerable
9
Ienumerable : enumeratie met yield return
10
Comprehension Syntax Demo
11
Query voorbeelden Query composition var filtered = names.Where (n => n.Contains ("a")); var sorted = filtered.OrderBy (n => n); var query = sorted.Select (n => n.ToUpper( ));
12
LINQ to XML Demo
13
Data Access met LINQ LINQ to SQL
14
Object Relational Impedance Mismatch Objecten Objects != Data Relationele Data
15
Verschillen tussen LINQ to SQL en het Entity Framework
16
Data Access met ADO.Net SqlConnection c = new SqlConnection(…); c.Open(); SqlCommand cmd = new SqlCommand( @"SELECT c.Name, c.Phone @"SELECT c.Name, c.Phone FROM Customers c FROM Customers c WHERE c.City = @p0"); WHERE c.City = @p0"); cmd.Parameters.AddWithValue("@p0", "London“); DataReader dr = c.Execute(cmd); while (dr.Read()) { string name = dr.GetString(0); string name = dr.GetString(0); string phone = dr.GetString(1); string phone = dr.GetString(1); DateTime date = dr.GetDateTime(2); DateTime date = dr.GetDateTime(2);}dr.Close(); Data Access met klassiek ADO.Net Queries in quotes Loosely bound arguments Loosely typed result sets No compile time checks
17
public class Customer { … } public class Northwind: DataContext { public Table Customers; public Table Customers; …} Northwind db = new Northwind(…); var contacts = from c in db.Customers from c in db.Customers where c.City == "London" where c.City == "London" select new { c.Name, c.Phone }; select new { c.Name, c.Phone }; Data Access met LINQ to SQL Classes describe data Strongly typed connection Integrated query syntax Strongly typed results Tables are like collections
18
Linq to SQL : Mapping DB to Objects Database Table View Column Relationship Stored Procedure DataContext Class + Collection Property Nested Collection Method
19
LINQ to SQL Architectuur from c in Context.Customers Where c.LastName. StartsWith(“Niks”) select new { c.Name, c.FirstName}; from c in Context.Customers Where c.LastName. StartsWith(“Niks”) select new { c.Name, c.FirstName}; select Name, FirstName from customers where Lastname like ‘Niks%' LINQ to SQL DataContext SQL Server Customer c = new Customer(); Customer.LastName = “Bos”; Customers.InsertOnSumbit(c); Context.SubmitChanges(); Dynamische SQL of Stored Procedure ApplicatieApplicatie Services: - Change tracking - Concurrency control - Object identity
20
LINQ to SQL No. 2015 April 2015Title of Presentation Demo
21
Het ADO.Net Entity Framework Conceptual Mapping Logica l Object Model Relational Data Entity Table CSDL MSL SSDL Table
22
Entity Relationship Model Dr. Peter Chen, 1970
23
Entity Framework Layers Conceptual Mapping Logical Entity Framework Architecture CSDL Entity SQL MSL SSDL Entity Client Entity SQL Object Services Object Query LINQ to Entities
24
Lange termijn visie op data access
25
Resources Starten met Linq http://msdn2.microsoft.com/en-us/library/bb308961.aspx http://www.asp.net/learn/linq-videos/ http://weblogs.asp.net/scottgu/archive/tags/LINQ/ http://www.hookedonlinq.com/ http://msdn2.microsoft.com/en-us/vcsharp/aa336746.aspx Linq ninjas http://blogs.msdn.com/mattwar/default.aspx http://weblogs.asp.net/fbouma http://codebetter.com/blogs/ian_cooper/ http://mtaulty.com LINQPad http://www.linqpad.net/
26
Books
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.