Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

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 LINQ (Language.

Benzer bir sunumlar


... konulu sunumlar: "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 LINQ (Language."— Sunum transkripti:

1 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 LINQ (Language Integrated Query)

2 Introduction to LINQ The Purpose 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) public class Musteri{….} public class Northwind:DataContext { public Table 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; foreach (var i in subset) Console.WriteLine("{0} < 10", i); ******************************** 1<10 4<10 2<101<10 3<102<10 3<10 *********************** int[] subsetAsIntArray = (from i in numbers where i < 10 select i).ToArray() int[] subsetAsIntArray = (from i in numbers where i (); List subsetAsListOfInts = (from i in numbers where i ();

10 Örnek devam class Car { public string PetName = string.Empty; public string Color = string.Empty; public int Speed; public string Make = string.Empty; } List myCars = new List () { 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 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); }

11

12

13

14 index

15

16

17

18

19

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 Update

24 Update Delete Insert CRUD Db.Yazars.DeleteOnSubmit( kayit ) Db.SubmitChanges()

25 LINQ examples

26 Example 1

27 LINQ Example 2

28 LINQ Ex3

29


"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 LINQ (Language." indir ppt

Benzer bir sunumlar


Google Reklamları