Kayıtlar

HANGFIRE JOB' IN AYNI ZAMANDA BİRDEN FAZLA ÇALIŞMASINI ENGELLEME

Hangfire da bir jobımızın olduğunu düşünelim. Bu job belirli aralıklarda çalışıyor örnek olarak 50 dadika da bir çalıştığını düşünelim job ın tahmini çalışma süreside ortalama 50 dakika diyelim fakat o job belirli nedenlerle daha uzun sürebilir. Bizde aynı job ın sadece aktif olarak bir tane çalışmasını istiyoruz. Burada karşımıza  DisableConcurrentExecution( timeoutInSeconds: 5)  çıkıyor. DisableConcurrentExecution aynı jobın aynı anda birden fazla çalışmasını engelliyor. Verdiğimiz süre ise 2. jobın 5 saniye bekledikten sonra çalıştırılmasını söylüyor.

SQL BİRDEN FAZLA VERİTABANINDA SORGU ÇALIŞTIRMA

Örnek verecek olursak her müşteri için ayrı bir database açtığınız bir uygulamanızın olduğunu düşünün. Bir tablonun en çok kaydı hangi db de olduğunu merak ediyorsunuz. DECLARE @name varchar(max) DECLARE @count bigint DECLARE MY_CURSOR CURSOR   LOCAL STATIC READ_ONLY FORWARD_ONLY FOR SELECT name FROM sys.databases WHERE koşulu ile databaseleri filtreleyebilirsiniz OPEN MY_CURSOR FETCH NEXT FROM MY_CURSOR INTO @name WHILE @@FETCH_STATUS = 0 BEGIN        EXECUTE ('select count(*),'''+ @name+''' from '+ @name+'.dbo.TableName');     FETCH NEXT FROM MY_CURSOR INTO @name END CLOSE MY_CURSOR DEALLOCATE MY_CURSOR Kod bloğu ile sonuca ulaşabilirsiniz. Kendi ihtiyaçlarınıza göre kodda ufak değişiklikler yaparak istediğiniz sonuçları elde edebilirsiniz.

.NET CORE ENTİTY FRAMEWORK CORE MIGRATION

Projeniz de Entity Framework Core ve aynı zaman da katmanlı bir mimari kullanıyorsanız yani migration sonucu çıktılarınız ProjeAdi.Data katmanın da olacak ise aşağıda ki komutları kullanarak işleminizi tamamlayabilirsiniz. Önelikle terminalden migrationların olduğu proje dizinine geliniz. Add Migration C:\Users\furkan\source\repos\ProjeAdi\ProjeAdi.Data> dotnet ef migrations add migration_name --startup-project ..\ProjeAdi.WebAPI Bu komut ile migration oluşturmuş olduk. Şimdi de bu değişikliği database yansıtmak için aşağıda ki komutu çalıştırın. Update Migration C:\Users\furkan\source\repos\ProjeAdi\ProjeAdi.Data> dotnet ef database update --startup-project ..\ProjeAdi.WebAPI Değişiklikler database' e yansımış olacaktır.

LINQ İLE BİRDEN FAZLA SIRALAMA

LINQ kullanarak birden fazla sıralama yapılmak isteniyor ise OrderBy veya OrderByDescending  ile sıralanacak alanları virgül ile ayırarak birden fazla alanda sıralama yapmak mümkündür fakat aynı sorgu içerisinde büyükten-küçüğe ve küçükten-büyüğe bir sıralama yapılmak isteniyor ise ThenBy veya  ThenByDescending kullanılır. Basit bir örnek verecek olursak; var result = StudentList.OrderBy(x=>x.Name).ThenByDescending(x=>x.Age).ToList(); Örnek her ne kadar anlamsız olsa da anlatılmak istenen öğrenci listesini Ad'a göre küçükten-büyüğe(a-z), Yaş'a göre büyükten-küçüğe(z-a) şeklinde sıralanması istenmiştir.

SQL BELİRTİLEN KARAKTERLERE GÖRE ARAMA YAPMA

Bir kolon(tablodaki bir alan) içerisinde geçen cümle, kelime veya karakter araması yapmak için LIKE  sözcüğünü kullanırız. Bu sözcük içerisinde aranmak istenen cümleciğin kolon içerisinde başta, sonra veya içerisinde aramak istediğimizi belitmek için belli bir kullanımı vardır. Örnek, Kolon içerisinde geçen bir kelime/karakter aramak için kullanım şekli; SELECT * FROM TABLE_NAME WHERE COLUMN_NAME LIKE '%search%' Kolon içerisinde aranan kelime/karakter ile biten aramak için kullanım şekli; SELECT * FROM TABLE_NAME WHERE COLUMN_NAME LIKE 'search%' Kolon içerisinde aranan kelime/karakter ile  başlayan  aramak için kullanım şekli; SELECT * FROM TABLE_NAME WHERE COLUMN_NAME LIKE '%search' Peki ben bir karakter değil de birden fazla karakter ile başlayan bir değer listesini sorgulamak istiyorsam şu şekilde kullanabiliriz; SELECT * FROM TABLE_NAME WHERE COLUMN_NAME LIKE '[ABCDE]%'

SQL INSERT, UPDATE, DELETE

Resim
İnsert İşlemi:  Tablolara veri eklemek için kullanılır. Örnek:   INSERT INTO tablo_adi VALUES (3, İstanbul, 01.01.2007) Tablodaki tüm alanlara değilde sadece belirli alanlara veri eklemek için 'values' den önce alanları belirtmeniz gerekir.. Örnek:   INSERT INTO tablo_adi (ID, dogum_yeri, dogum_tarihi) VALUES (3, İstanbul, 01.01.2007) . Aynı şekilde veri eklerken de koşul belirtebilirsiniz Örnek:   SELECT * FROM tablo_adi WHERE dogum_yeri='İstanbul' AND yas>18 Update İşlemi:  Tabloya daha önceden eklediğiniz verilerde değişiklik yapmak için kullanılır ve bu işlemde şart koymak zorunludur çünkü hangi kayıtlarda işlem yapacağını bilmesi gerekir. Örnek:   UPDATE tablo_adi SET dogum_yeri= 'İstanbul' WHERE yas=21 * Yaşı 21 olan herkesin doğum yerini İstanbul olarak günceller. Delete İşlemi:  Tablodaki verileri silmek için kullanılır. Tablodaki bütün kayıtları silmek için; Örnek:   DELETE FROM tablo_adi ...