Sunuyu indir
1
LINQ (Language Integrated Query)
Yrd. Doç. Dr. Mustafa Cem Kasapbaşı Her yönüyle C# 9. baskı Sefer Algan Pro C# 2008 and the.NET 3.5 Platform Fourth Edition Andrew Troelsen
2
Introduction to LINQ The Purpose Why Linq
Verilerle yapılan işlemleri daha etkili kılmak Veri kaynakları : List objeleri XML objeleri Sql Why Linq Kod içinde gömülü sorgu olmakta. Hataları anacak çalışma zamanında belli olmaktadır. Parametrelerde veri tipi ancak çalışma anında doğru olduğu belli olur.
3
ORM(object Relation Mapping)
Musteri adlı sınıf oluşturularak, veri yapıları nesnel hale getirilmiş Veri tipi güvenliği Northwind DB, örneklendi Northwind DB, nesnelleşti İçindeki tablolar nesnelleşti public class Musteri{….} public class Northwind:DataContext { public Table<Musteri> Musteriler; …… } Northwind db= new Northwind(“connetion string”); var contacts =from c in db.Musteriler Where c.Ad==“Sefer” select new {c.Ad, c.Soyad};
4
LINQ to Object Var Sadece lokal değişken olabilir
İlk değer atamak zorunludur Bir metodun geri dönüş tipi var olamaz Var ile bildirilen değişkene farklı bir değer atanamaz
5
Linq examples
6
Extension Methods Yapı, sınıf ve ara yüzler için
Statik sınıf içinde tanımlanabilir Bildirimi static olarak yapılmalıdır Geliştirilecek tipin bildirimi, Genişleme metodunun ilk parametresi olmalı önüne this anahtar sözcüğü gelmeli Erişilebilir olmalı Sınıfın kendi metodu öncelikli şekilde çağırılır. Aşırı yüklenebilir. Bir tipe farklı static sınıflar içinde genişleme metodu eklenebilir. İmzalar farklı olmalıdır. LINQ haricinde de kullanılabilir.
7
Örnek
8
Lambda İfadeleri Kodun veri olarak ifade edilmesinde kullanılır.
Lisp, python, schema gibi dillerde de kullanılmaktadır Sorgulama yaparken (parametre)=>(ifade gövdesi) Expression gövdeli x=>x+2 ; (int x)=x+1; Statement Gövdeli X=> {return x+3}; (x,y)=>x+y; ()=>{return true;}
9
Örnek Devam int[ ] numbers = { 10, 20, 30, 40, 1, 2, 3}; var subset = from i in numbers where i < 10 select i; foreach (var i in subset) Console.WriteLine("{0} < 10", i); Console.WriteLine() numbers[0] = 4; ******************************** 1<10 4<10 2<10 1<10 3<10 2<10 3<10 *********************** int[] subsetAsIntArray = (from i in numbers where i < 10 select i).ToArray() (from i in numbers where i < 10 select i).ToArray<int>(); List<int> subsetAsListOfInts = (from i in numbers where i < 10 select i).ToList<int>();
10
Örnek devam class Car { }
public string PetName = string.Empty; public string Color = string.Empty; public int Speed; public string Make = string.Empty; } List<Car> myCars = new List<Car>() { new Car{ PetName = "Henry", Color = "Silver", Speed = 100, Make = "BMW"}, new Car{ PetName = "Daisy", Color = "Tan", Speed = 90, Make = "BMW"}, new Car{ PetName = "Mary", Color = "Black", Speed = 55, Make = "VW"}, new Car{ PetName = "Clunker", Color = "Rust", Speed = 5, Make = "Yugo"}, new Car{ PetName = "Melvin", Color = "White", Speed = 43, Make = "Ford"} }; static void GetFastCars(List<Car> myCars) var fastCars = from c in myCars where c.Speed > 55 select c; foreach (var car in fastCars) Console.WriteLine("{0} is going too fast!", car.PetName);
14
index
20
Partial Methods Kısmi metotlar sadece kısmi tipler içinde bildirilebilir. Kısmi metodların gövdesi olamk zorında değildir. partial anahtar kelimesi kullanılır Geri dönüş değerleri void olmak zorunda dır. Override, virtual, new, abstract ve sealed kullanılamaz Static olabilirler Erişim belirleyici kullanılmaz
21
LINQ to SQL Classes corresponding to databasse tables and records are created
22
Update Delete Insert CRUD
Inserting new record (LinqForms is the name of project)
23
Update Delete Insert CRUD
24
Update Delete Insert CRUD
Db.Yazars.DeleteOnSubmit( kayit ) Db.SubmitChanges()
25
LINQ examples
26
Example 1
27
LINQ Example 2
28
LINQ Ex3
Benzer bir sunumlar
© 2024 SlidePlayer.biz.tr Inc.
All rights reserved.