folder Tahribat.com Forumları
linefolder C#, Asp.Net, .Net Core
linefolder Entity Framework Join İşlemi (C#)



Entity Framework Join İşlemi (C#)

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Ercan
    Ercan's avatar
    Kayıt Tarihi: 04/Temmuz/2008
    Erkek

    Yeni yeni entity framework'u öğreniyorum, yapmak istediğim bir şey var, nasıl yapıldığını tam çözemedim.

    Sıfırdan entity data model oluşturdum, tablolarımı ve ilişkilerini ayarlarım. Yaptığım projede iki tablodan bazı bilgiler alıp tek bir tabloymuş gibi  göstermek istiyorum ama kodla değilde entity data model de direk görsel olarak oluşturduğum yerde bunu yapmam mümkün mü? Mapping'den ikinci tablomu ekleyip validet dediğimde hata alıyorum.


    IF YOU ARE NOT TİRED, YOU ARE NOT DOING IT RIGHT
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    TeRRoR
    TeRRoR's avatar
    Kayıt Tarihi: 06/Nisan/2007
    Erkek

    Bunun için ayrı bir sınıf tanımlayıp, .Select(new YeniObje { x=c.a, y = b.a} ) diye oluşturman gerekiyor 


    herkes programcı olmak zorunda değildir, lütfen bir zorunluluk gibi programlama dilleri öğrenmeye çalışmayın. yabancı dil filan öğrenin amq.// s.kimin etini yerim, kasaba minnet etmem.// ince düşünene kalın girer.//
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    unbalanced
    unbalanced's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    arkadaşın dediği gibi yeni bir sınıf ile yapabilirsin. işin güzel özelliği bu :) mesela birden fazla sınıfı/tablo yu birleştirdin, buradan istediklerini

    döndermek için "istediklerin" için bir sınıf yazıyorsun ve propertylerine bu değerleri atıyorsun :) bu da çok büyük bir esneklik sağlıyor :)


    Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    nessaj
    nessaj's avatar
    Kayıt Tarihi: 03/Mayıs/2010
    Erkek
    Ercan bunu yazdı

    Yeni yeni entity framework'u öğreniyorum, yapmak istediğim bir şey var, nasıl yapıldığını tam çözemedim.

    Sıfırdan entity data model oluşturdum, tablolarımı ve ilişkilerini ayarlarım. Yaptığım projede iki tablodan bazı bilgiler alıp tek bir tabloymuş gibi  göstermek istiyorum ama kodla değilde entity data model de direk görsel olarak oluşturduğum yerde bunu yapmam mümkün mü? Mapping'den ikinci tablomu ekleyip validet dediğimde hata alıyorum.

    View yazıp onu map edebilirsin, oldukça basit olur.

    Eğer viewa bağlı olcak tablolar çok seyrek insert alıyorsa, indexed view'e çevirebilsin, daha performanslı olur.

    Nası oluşturulcağı hakkında buraya bakabilirsin.

    http://msdn.microsoft.com/en-us/library/ms187956.aspx

    EF de db first gittiğini varsayarsak, karşına çıkan sihirbazda View'e tik atman o view'i select işlemlerinde kullanman için yeterli olucaktır.

    nessaj tarafından 22/Ara/12 01:41 tarihinde düzenlenmiştir
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Tarikat Şeyhi
    HolyOne
    HolyOne's avatar
    Kayıt Tarihi: 01/Haziran/2002
    Erkek

    Hocam yaparsın bi şekilde de doğru yolu o değil.

    SPler oluştur öyle karmaşık işlemler için ve SP lerin sonuçlarını çek entity üzerinden


    Nush ile uslanmayanı etmeli tekdir, Tekdir ile uslanmayanın hakkı kötektir!
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    SharpShooter
    SharpShooter's avatar
    Banlanmış Üye
    Kayıt Tarihi: 10/Temmuz/2008
    Erkek

    join işlemi için .join metodu var.

     


    - xx yerde hata var. - ya aslında kod şöyle sanıyor olabilir bla bla bla - olm kendine gel kodlar düşünmez - ...
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Ercan
    Ercan's avatar
    Kayıt Tarihi: 04/Temmuz/2008
    Erkek

    Pek fazla zamanım olmadı dediklerinizi yapmak için, sp ile nasıl çekilir onu henüz öğrenmedim. İllk fırsaatta bakıcam belki de en son onunla hallederim. Birde yeni nesne oluşturmadan olayı tablo'da halletmek istememin sebebi dinamik sorgu oluşturmak istemem. PredicateBuilder diye birşeye rasladım. Kullanışlı birşey çoğu yerde kullandım database.tabloadi.where(nesnem) şeklinde kullanınca çalışıyor ama join'i kullanıp nesne yaratmak istediğimde hata veriyor. 

    • using (SPModelContainer db = new SPModelContainer())
    •             {
    •                 var predicate = PredicateBuilder.True();
    •                 predicate = predicate.And(x => x.OrderDate >= dtDate1.Value && x.OrderDate <= dtDate2.Value);
    •                 if (!string.IsNullOrEmpty(txtCustomer.Text))
    •                     predicate = predicate.And(x => x.Customer.Equals(txtCustomer.Text));
    •                 if (!string.IsNullOrEmpty(cbProduct.Text))
    •                     predicate = predicate.And(x => x.Product.Equals(txtCustomer.Text));
    •  
    •                 var query = (from o in db.Orders.Where(predicate)
    •                             join d in db.Dealers on o.DealerOrderId equals d.DealerId
    •                             select new { o.OrderId, o.DealerOrderId, o.OrderDate, o.Durum, d.DealerName, o.Customer, o.Phone, o.City, o.Districk, o.Address, o.Cost, o.Product, o.PaymentType, o.Explanetion });
    •                 
    •                 dgOrders.DataSource = query;
    •             }

    The LINQ expression node type 'Invoke' is not supported in LINQ to Entities. (Bu hatayı kod çalıştğımda alıyorum)

    tek bir tablodan veri çekerken problem çıkartmıyor.

    http://www.codeproject.com/Articles/231706/Dynamic-query-with-Linq

     

    Ercan tarafından 23/Ara/12 00:40 tarihinde düzenlenmiştir

    IF YOU ARE NOT TİRED, YOU ARE NOT DOING IT RIGHT
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    nessaj
    nessaj's avatar
    Kayıt Tarihi: 03/Mayıs/2010
    Erkek

    select new yaptığın yerde dynamic value döndürmek yerine kendi yazdığın bir classı kullan ve predicatebuilderın generic parametresinede o classı ver.

Toplam Hit: 2964 Toplam Mesaj: 8