Pazar, Ocak 23, 2011

Linq ile NewID() Kullanımı

Amacımız veri tabanından rastgele 4 kayıt çekmek olsun. Bu işlemi gerçekleştirmek için aşağıdaki gibi bir sql cümlesi kullanırız.

select top 4 EmployeeID,LastName,FirstName,Title,TitleOfCourtesy from Employees order by NewID()

Böyle bir işlemi linq ile yapmak için harici bir fonksiyona ihtiyaç duyarız. Fonksiyon aşağıdaki şekilde.

[Function(Name = "NEWID", IsComposable = true)]
public Guid NewID()
{
return Guid.NewGuid();
}

Fonksiyonun yaptığı iş sadece ilgili kayıt için yeni bir guid döndürmek. Bu fonksiyonu kullanabilmek için iki seçeneğimiz var:

1. Fonksiyonu dbml'in .cs dosyasına içine eklemek
2. dbml sınıfı partial class olduğu için yeni bir ".cs" dosyası açıp dbml sınıfı ile aynı isimde partial class oluşturup fonksiyonu buraya koyabiliriz.

Yukarıdaki seçeneklerden birini kullanarak fonksiyonu kullanıma hazır hale getirdikten sonra, en baştaki sql cümlesini linq ile yazarak eklediğimiz fonksiyonun linq ile kullanımını görelim.

var employess = (from t0 in linqDB.Employees
orderby linqDB.NewID()
select new
{
t0.EmployeeID,
t0.LastName,
t0.FirstName,
t0.Title,
t0.TitleOfCourtesy
}).Take(4);


Kolay gelsin...

Hiç yorum yok: