Entity Framework Inner Join Yardımı
-
Şu entity mevzusunda inner join ile bir sorguda tıkandım.
Kullanıcılar Tablosu
CREATE TABLE SISTEM_tblKullanicilar ( kullanici_ID INT PRIMARY KEY AUTO_INCREMENT NOT NULL, benzersiz_deger CHAR(36) DEFAULT NULL, kod VARCHAR(255), kullanici_adi VARCHAR(50), e_posta VARCHAR(100), sifre VARCHAR(255), kayit_tarihi TIMESTAMP NOT NULL DEFAULT NOW(), uyelik_aktif TINYINT DEFAULT 0 )
Müşteriler Tablosu
CREATE TABLE SISTEM_tblMusteriler ( musteri_ID INT PRIMARY KEY AUTO_INCREMENT NOT NULL, benzersiz_deger CHAR(36) DEFAULT NULL, kullanici_ID INT DEFAULT NULL, resim_orijinal VARCHAR(255), resim_buyuk VARCHAR(255), resim_orta VARCHAR(255), resim_kucuk VARCHAR(255), kod VARCHAR(255), unvan VARCHAR(255), ad VARCHAR(50), soyad VARCHAR(50), ad_soyad_seo VARCHAR(100), cinsiyet TINYINT DEFAULT 0, tc_no VARCHAR(20), vergi_no VARCHAR(20), dogum_tarihi DATE, CONSTRAINT FK_SISTEM_tblMusteriler_SISTEM_tblKullanicilar FOREIGN KEY (kullanici_ID) REFERENCES SISTEM_tblKullanicilar(kullanici_ID) )
İkisinde de ortak olan sütun kullanici_ID adlı sütundur. Şimdi benim yapmak istediğim inner join ile yapıp kullanici_adi, e_posta, tc_no, vergi_no alanlarında arama yapıp count almak.
Nette aradım lakin yapamadım desem.
Şimdiden teşekkürler.
-
var Query = from STblKullanici in SISTEM_tblKullanicilar join STblMusteri in SISTEM_tblMusteriler on STblKullanici.kullanici_ID equals STblMusteri.kullanici_ID where STblKullanici.e_posta == "Deneme@Gmail.aspx" && STblMusteri.tc_no== "12345" select new {benzersizdeger = STblKullanici.benzersiz_deger, Kullanici_adi= STblKullanici.kullanici_adi};EDİT ;
Sorgunu okumak için de ;foreach (var Values in Query ) { //Ekrana Yazdırma komutunu unuttum :D:D:D EkranaYazdirmaKomutu.(Values.benzersizdeger ); } //Sayısı Values.Count();
MhmdAlmz tarafından 12/Eki/16 22:19 tarihinde düzenlenmiştir -
EntitySinifi db = new EntitySinifi(); var result = db.SISTEM_tblKullanicilar .Join(db.SISTEM_tblMusteriler, k => k.kullanici_ID, m => m.kullanici_ID, (k,m) => new {k.kullanici_ID,k.kullanici_adi, k.e_posta,m.tc_no, m.vergi_no}) .Where(p => p.kullanici_adi == "balblabla") .Select(p => new ExampleViewModel{ username = p.kullanici_adi, vergi = p.vergi_no }) .toList(); // en son result ın count unu alırsın result burada //ExampleViewModel türünden nesneler saklayan bir liste olmuş //oldu.Method syntax ı ile yazdım hocam.
Açıklama:
Joinden sonra db.baglamak istediğin tablo adın gelecekti. Joindeki 2. ve 3. argumanlara tablolardaki hangı kolonlara göre baglama yapmak istediğimizi soledık ve k ve m şeklinde ifade ettim 4. argumanda (k,m) => diyerek istediğim kolonları çektim.
Bu kolonları artık select yada where içerisinde kullanabilirim.
