Linq ile AS ve Inner Join Kullanımı
Bu yazıda sizlere Linq to Sql ile normal Sql içinde as ve inner join ifadeleri nasıl kullanılır onu göstereceğim... İlk Olarak As ve inner join ne işe yarıyor onları bir hatırlayalım.As : SQL de bazı tablolardan verileri çekip onları işleyerek yeni bir sütun oluşturmaktır. Ama bu sütün Sql tablomuzda yoktur. Bizler o anlık kullanım için oluştururuz. Bu işlem As ile yapılır.
Inner Join : Tabloda çektiğimiz veriyi götürüp başka bir tabloda işliyorsak ve orda bir sorgu yapıyorsak kullanılır.
Gelelim şimdi konumuz olan Bu ifadelerin Linq To Sql de nasıl kullanırız... İlk başta örnek bir kod paylaşayım ve onunla anlatmaya başlayayım...
Örnek Kodumuz :
var _sorgu = (from p in linq.users
select new
{
p.ID,
fullname = p.Name + " " + p.SurName,
p.Email,
usertype = (from b in linq.types where b.type_id == p.ID select b.type).First()
}).ToList();
Burada hem as ifadesi hemde inner join ifadesi bulunmakta. Eğer bizler veri çekerken yeni kolonlar oluşturmak istiyorsak verilerimizi aşağıdaki gibi çekeceğiz...
var _sorgu = (from p in linq.users
select new
{
//oluşturacağımız alanların tanımları buraya gelecek
}).ToList();
daha sonra sütun tanımlarımızı bu alana yazacağız.
Örnek olarak ben kullanıcının ad ve soyadını kullanarak fullname olarak ikisinide almak istiyorum o zaman
fullname = p.Name + " " + p.SurName,
şeklinde alanımı oluşturmalıyım. Bizler burda aslında as ifadesini kullanmış olduk.
Yani name ve Surname alanını birleştir bana fullname olarak getir demiş olduk. Bu alan tablomuza fullname olarak gelecektir.
Birde inner join kullanımına bakalım. inner join ise ilk tablomuzdaki verileri kullanarak başka tablodan veri çekme işlemidir.Onuda aşağıdaki gibi yapacağız :
usertype = (from b in linq.types where b.type_id == p.ID select b.type).First()
bu şekilde ben kullanıcı tablomdaki kullanıcının sütununda kayıtlı olan kullanıcı türü değerini; kullanıcı türleri tablomdaki değerle işleyip ordaki türü getirmiş oldum.
Yani tablomda kullanıcı türü 1 2 3 4 diye değilde admin mod editör vb. şekilde yazacak. artık onu tablonuzdan siz ayarlayacaksınız.
Bu yazımızda buraya kadar arkadaşlar. Umarım anlaşılnıştır.
İyi çalışmalar
Comments