Posted on: 24 Eylül 2019 Posted by: alidemirkaya Comments: 0

Herkese merhabalar. Linq sorgularında sıklıkla karşılaşmışsınızdır. Bazen bir gruplama yaparsınız ve belirli ögeleri size döndürür. Ben de bu sorunu çözmek için bu yazıda sizlere yardımcı olmaya çalışacağım. Umarım faydalı olur.

Bu işlem için Northwind veritabanında Orders ve Order Details tablolarını inceleyelim.

Aslında şimdilik siparişler tablosunda müşteri numaralarına göre bir gruplama yapsak yeterli olacaktır. Ancak bu yöntemin önemli bir kısmı gruplama yaptığınız da FirstOrDefault metodunu kullanmasıdır. Aşağıdaki görselde daha iyi anlayacaksınız.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApp7
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        DataClasses1DataContext dc = new DataClasses1DataContext();
        private void Form1_Load(object sender, EventArgs e)
        {

        }
        public void Listele()
        {
            var sorgu = dc.Orders.GroupBy(x => x.CustomerID).Select(y => y.FirstOrDefault()).OrderByDescending(item => item.CustomerID).ToList();

            foreach(var deg in sorgu)
            {
                string[] dizi = new string[] { deg.CustomerID,Convert.ToString(deg.OrderDate)};
                listView1.Items.Add(new ListViewItem(dizi));
            }
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Listele();
        }
    }
}

Çalıştırdığımızda ise şu görüntüyü elde ediyoruz.

Leave a Comment