none
ASP.Net MVC İnner Join RRS feed

  • Soru

  • Merhaba,

    İnner join ile bağladığım tablolarımı sayfada nasıl gösterebilirim?View kısmında foreachle dönüp basıyorum ama olmuyor.Controller kısmı aşağıdadır.

                var query = (from personel in db.Personeller
                                        join departman in db.Departmanlar
                                        on personel.DepartmanId equals departman.Id
                                        join gorev in db.Gorevler
                                        on personel.GorevId equals gorev.Id
                                        select new
                                        {
                                            personel.Adi,
                                            personel.Soyadi,
                                            personel.Sonuc,
                                            Departman = departman.Adi,
                                            Gorevi = gorev.Gorev,
                                            BaslangıcTarihi = gorev.Baslangic,
                                            BitisTarihi = gorev.Bitis
                                        }).ToList();

                                        return View(query);

    1 Ağustos 2015 Cumartesi 16:29

Yanıtlar

  • Merhaba,

    İnner join ile bağladığım tablolarımı sayfada nasıl gösterebilirim?View kısmında foreachle dönüp basıyorum ama olmuyor.Controller kısmı aşağıdadır.             var query = (from personel in db.Personeller


                                        join departman in db.Departmanlar
                                        on personel.DepartmanId equals departman.Id
                                        join gorev in db.Gorevler
                                        on personel.GorevId equals gorev.Id
                                        select new
                                        {
                                            personel.Adi,
                                            personel.Soyadi,
                                            personel.Sonuc,
                                            Departman = departman.Adi,
                                            Gorevi = gorev.Gorev,
                                            BaslangıcTarihi = gorev.Baslangic,
                                            BitisTarihi = gorev.Bitis
                                        }).ToList();

                                        return View(query);

    public class MyDataModel
    {
      public string PersonelAdi {get;set;}
      public string PersonelSoyadi {get;set;}
      public string PersonelSonuc {get;set;}
      public string DepartmanAdi {get;set;}
      public string Gorevi {get;set;}
      public DateTime BaslangicTarihi {get;set;}
      public DateTime BitisTarihi {get;set;}
    }
    
    
    var query = (from personel in db.Personeller
                                         join departman in db.Departmanlar
                                         on personel.DepartmanId equals departman.Id
                                         join gorev in db.Gorevler
                                         on personel.GorevId equals gorev.Id
                                         select new MyDataModel
                                         {
                                             PersonelAdi = personel.Adi,
                                             PersonelSoyadi = personel.Soyadi,
                                             PersonelSonuc = personel.Sonuc,
                                             DepartmanAdi = departman.Adi,
                                             Gorevi = gorev.Gorev,
                                             BaslangicTarihi = gorev.Baslangic,
                                             BitisTarihi = gorev.Bitis
                                         }).ToList(); 
                                        return View(query);
    
    View tarafında da modelinizi IEnumerable<MyDataModel> şeklinde tanımlayıp foreach içinde kullanabilirsiniz.


    oguzkurtcuoglu.com


    • Yanıt Olarak İşaretleyen Serkan Canseven 8 Ağustos 2015 Cumartesi 13:36
    3 Ağustos 2015 Pazartesi 07:40

Tüm Yanıtlar

  • Anonim tiplerden oluşan liste model olarak kullanılabiliyor mu bilmiyorum ama model olarak 

    @model List<T> 

    şeklinde bir dene istersen. Eğer bu şekilde çalışmazsa anonim tip olarak değil de belirttiğin alanları içeren bir sınıf oluştur ve model olarak bu sınıftan bir liste ver.

    1 Ağustos 2015 Cumartesi 18:47
  • Multi model kullanabilirsiniz.
    1 Ağustos 2015 Cumartesi 22:19
  • Yeni bir model oluşturdum ancak dönüş tipinde bir sorun var.Nesne boş geliyor galiba.

    Model

        public class newClass
        {
            public List <Personeller> personel { get; set; }
            public List<Departmanlar> departman { get; set; }
        }

    Controller

             var query = (from personel in db.Personeller
                                        join departman in db.Departmanlar
                                        on personel.DepartmanId equals departman.Id
                                        join gorev in db.Gorevler
                                        on personel.GorevId equals gorev.Id
                                        select new
                                        {
                                            personel.Adi,
                                            personel.Soyadi,
                                            personel.Sonuc,
                                            Departman = departman.Adi,
                                            Gorevi = gorev.Gorev,
                                            BaslangıcTarihi = gorev.Baslangic,
                                            BitisTarihi = gorev.Bitis
                                        }).ToList();

                                        return View(query);

    View

    @model IEnumerable<RTP_Demo.Models.newClass>
    @{
        ViewBag.Title = "Index";
    }
    @foreach(Personeller per in Model.personel)
    {
        <p>@per.Adi</p>

    }

    Hata

    CS1061: 'System.Collections.Generic.IEnumerable<RTP_Demo.Models.newClass>' does not contain a definition for 'personel' and no extension method 'personel' accepting a first argument of type 'System.Collections.Generic.IEnumerable<RTP_Demo.Models.newClass>' could be found (are you missing a using directive or an assembly reference?)

    2 Ağustos 2015 Pazar 07:48
  • Model oluşturmuşsun ama modelin içi boş kalmış. Sorguyu

    select new newClass()
    {
    personel = new List<Personeller>()
    {
    .....
    },
    departman = new List<Departmanlar>()
    {
    ...
    }
    }).ToList();
    şeklinde değiştirip dener misin? 

    2 Ağustos 2015 Pazar 08:05
  • Yine sonuç alamadım hocam, yinede sağolun.Bildiğim yola dönüp web forms kullanarak yaptım.
    2 Ağustos 2015 Pazar 19:32
  • Deleted
    3 Ağustos 2015 Pazartesi 07:21
  • Merhaba,

    İnner join ile bağladığım tablolarımı sayfada nasıl gösterebilirim?View kısmında foreachle dönüp basıyorum ama olmuyor.Controller kısmı aşağıdadır.             var query = (from personel in db.Personeller


                                        join departman in db.Departmanlar
                                        on personel.DepartmanId equals departman.Id
                                        join gorev in db.Gorevler
                                        on personel.GorevId equals gorev.Id
                                        select new
                                        {
                                            personel.Adi,
                                            personel.Soyadi,
                                            personel.Sonuc,
                                            Departman = departman.Adi,
                                            Gorevi = gorev.Gorev,
                                            BaslangıcTarihi = gorev.Baslangic,
                                            BitisTarihi = gorev.Bitis
                                        }).ToList();

                                        return View(query);

    public class MyDataModel
    {
      public string PersonelAdi {get;set;}
      public string PersonelSoyadi {get;set;}
      public string PersonelSonuc {get;set;}
      public string DepartmanAdi {get;set;}
      public string Gorevi {get;set;}
      public DateTime BaslangicTarihi {get;set;}
      public DateTime BitisTarihi {get;set;}
    }
    
    
    var query = (from personel in db.Personeller
                                         join departman in db.Departmanlar
                                         on personel.DepartmanId equals departman.Id
                                         join gorev in db.Gorevler
                                         on personel.GorevId equals gorev.Id
                                         select new MyDataModel
                                         {
                                             PersonelAdi = personel.Adi,
                                             PersonelSoyadi = personel.Soyadi,
                                             PersonelSonuc = personel.Sonuc,
                                             DepartmanAdi = departman.Adi,
                                             Gorevi = gorev.Gorev,
                                             BaslangicTarihi = gorev.Baslangic,
                                             BitisTarihi = gorev.Bitis
                                         }).ToList(); 
                                        return View(query);
    
    View tarafında da modelinizi IEnumerable<MyDataModel> şeklinde tanımlayıp foreach içinde kullanabilirsiniz.


    oguzkurtcuoglu.com


    • Yanıt Olarak İşaretleyen Serkan Canseven 8 Ağustos 2015 Cumartesi 13:36
    3 Ağustos 2015 Pazartesi 07:40