#15 Asp.Net Core 5.0 Proje Kampı Repositorylerin Yazılması

preview_player
Показать описание

Рекомендации по теме
Комментарии
Автор

Context sınıfını globalde tanımladığımız zaman tüm metodlar için kullanılabilir oluyor.
Context sınıfı gibi IDisposable'dan türemiş nesneler using bloğu içinde oluşturulduklarında using bloğundan çıkıldıktan sonra Garbage Collector'e devredilir ve otomatik olarak dispose edilirler(silinirler).

kevsercanca
Автор

Soru 1 : SaveChanges ın Ado Net de kullanılan karşılığı nedir?
Cevap 1: Tam karşılığı olmamakla beraber ExecuteNonQuery.
Soru 2 : "using var c = new Context()" ve "Context c = new Context()" arasında nasıl bir fark vardır?
Cevap 2: Farklılıklar şu şekildedir:

"using var c = new Context()": Bu ifade, using bloğu içinde tanımlanan ve IDisposable arayüzünü uygulayan bir Context nesnesi oluşturur. using bloğu bittiğinde, Dispose() yöntemi otomatik olarak çağrılır ve kaynaklar serbest bırakılır. Bu, kaynakların hatasız bir şekilde serbest bırakılmasını sağlar.

"Context c = new Context()": Bu ifade, bir Context nesnesi oluşturur, ancak IDisposable arayüzü ile ilgilenmez. Bu durumda, kaynakları serbest bırakmak için Dispose() yöntemini çağırmak geliştiricinin sorumluluğundadır. Dispose() yöntemi çağrılmadığı takdirde, kaynaklar el ile serbest bırakılmaz ve potansiyel olarak kaynak sızıntılarına yol açabilir.

Bu nedenle, IDisposable arayüzünü uygulayan nesneleri kullanırken ve kaynakları düzgün bir şekilde serbest bırakmak istediğinizde "using var" ifadesini tercih etmek önemlidir.

ha.kaya
Автор

Context c= new Context ifadesi Class genelinde tanımlanır ve tüm class içerisinde kullanılır.
using var = new Context ifadesi ise sadece yazılı olan method içerisinde kullanılır ve her method için tanımlanmak zorundadır.

kodbuddy
Автор

using kullanarak Context sınıfını tanımladığımız zaman çöp toplayıcıdan önce IDisposable arayüzünün dispose metodunun çalıştırılarak hafızadan silinmesini sağlar.

iremsamur
Автор

"using var c = new Context()" sadece o metota ait oluyor yani her metot içine ayrı ayrı yazmamız gerek,
"Context c = new Context()" ise tüm metodların dışına yazıyoruz yani tümünü kapsıyor.

emrepiristine
Автор

Hocam Context 'i class içerisinde tanımladığımızda tüm metotlardan o context 'e ulaşabiliriz. Context 'i metotların içerisinde ayrı ayrı tanımlarsak çok fazla kod tekrarı olur. Don't Repeat Yourself !!!.

huseyincicek
Автор

context class içinde tanımlandığında tekrar etmeden içerisinde bütün methodlarda çağrılabilir ama method içinde yazılırsa her defasında tekrar etmek gerekir

canengin
Автор

ÖDEV-1 / Soru: SaveChanges ın Ado Net de kullanılan karşılığı nedir? Cevap: ExecuteNonQuery.
ÖDEV-2 / "Context" tüm metodların dışına tek sefer yazılıp bütün metodlarda, kodun tamamında kullanılabiliyorken, "Using" sadece yazıldığı metoda ait oluyor ve her metod için tekrar tekrar yazılması gerekiyor. Kod satır sayısı olarak düşündüğümüzde, "Context" kodu sadece 1 satır arttırırken, "Using" her metodda ayrı ayrı yazıldığı için kaç metod varsa kod o kadar satır artıyor. Bu da çok büyük kodlamalar için performans açısından negatif bir etki yaratır.

oserinkaya
Автор

"using var c = new Context()" sadece o metota ait oluyor yani her metot içine ayrı ayrı yazmamız gerek,
"Context c = new Context()" ise tüm metodların dışına yazıyoruz yani tümünü kapsıyor.
Soru : Ado net de SaveChanges' in karşılığı nedir?
Cevap: ExecuteNonQuery :)

gamzebozkus
Автор

usingli yapıda her metodu çalıştırdığımızda o anki metodu kullandığımız ana özel bir obje oluşturup onun uzerinden işlem yapıyoruz.diger turlu baştan bir obje olustuuyoruz ve fonksiyonları onun ustunde kullanıyoruz

yume
Автор

Hocam using le yazdığınız sadece yazdığınız metodda çalışa bilir.

zairlizahir
Автор

Ado net de SaveChanges in karşılığı ExecuteNonQuery dir.
Globalde Context sınıfından c nesnesi türettiğimiz zaman, bu nesne tüm metotlar için geçerli oluyor.
using bloğu ile ise her metot için tekrar tekrar türetmemiz gerekiyor c nesnesini.

ozlemsevil
Автор

Metod içinde tanımlana using var c = new Context() komutundaki c nesnesi local bir nesne olduğundan dolayı ihtiyaç duyulan her bir metodda tekrar tanımlanması gerekir. Ama global olarak tanımladığımız Context c = new Context() komutundaki c nesnesi tekrar tanımlamaya ihtiyaç duyulmadan metodlar içerisinde kullanılabilir.

engineer
Автор

Hocam bir sınıfın interface'den kalıtım alması yerine implemente etmek daha doğru bir tanımlama değil midir? Interfaceler sınıflara kalıtım da verebilir mi?

batuhanaral
Автор

Hocam, bir sorum var size. IGenericDal Interfaceni olusturduktan sonra neden ICategorydal-i IGenericDaldan varislik yapmadik (turkcem zayif yani
Neden boyle yapmatik ki? Repositorylerde de boyle oldu .

shirzadaliyev
Автор

Hocam, "Context c = new Context();" yazdığımız zaman, hepsine ait olmuş oluyor. Ama, using ile yazarsak, hepsi için ayrı-ayrı yazılması gerekir.

samirasifoglu
Автор

Hocam BlogRepository kısmında implement ettiğimde içini doldurduğumda methodların bana kızıyor ve ayrıca
Category IBlogDal.GetById(int id)
{
throw new NotImplementedException();
}
Eklemem gerektiğini söylüyor neden ?

muharremyalman
Автор

Using kullanımda garabeCollector beklemeden iş bitiminde hafızadan siliyoruz.

atakanyeniceli
Автор

Usıng kullanınca sürekli Veritabanına sorgu gönderecek ve ek işlem masrafı oluşturmuyor mu öyle hocam.

ramazangCoder
Автор

using ifadesi ile context sınıfıyla işimiz bittiği zaman IDisposibledaki disposible ile GarbageCollector sayesinde silinir

omerfaruksandkc