Emeğinize sağlık hocam... using anahtar kelimesini kullanmamızın sebebi : Garbace collector(tanımlanan nesneyi dispose eder.) denilen toplayıcının görevi olan otomatik imha etme görevini devralmak isteriz. Tanımladığımız nesne örneğini dispose etmeyi garantilemek isteriz. Başka bir deyişle ram'den atmak isteriz. Çünkü garbace collector denilen yapı kafasına ne zaman eserse o zaman nesneleri imha eder :)
Dispose Method kullanımı anlık olarak RAM'de yer açılıp scopeların arasındaki işlem bittikten sonra RAM'de açılan alanın boşaltılması yolu ile ilerlediğinden. Sabit bir RAM alanının tutulması ve performans kaybının önüne geçilmesi için tercih edilmesi çok mükemmel bir yöntemdir. Ayrıca hocam ağzınıza sağlık çok güzel gidiyor proje 😍
Emeğinize sağlık hocam. Yazdığımız metotların dışına context sınıfından bir nesne oluşturduğumuzda tek seferde yazıp bütün metotlarda kullanabiliriz. Using kullanımı ise yazılan metot içindir, her metot için tekrar yazılması gerekir.
Merhabalar hocam Egemen arkdaşımın söylediğine katılmakla beraber şunu eklemek istiyorum global olarak tanımlanacak contex sınıfı bir instance ayrıca bir ram kullanımına sebep olmakla beraber using kullanılmadan oluşturulusa ordan da bir performans kaybı yaşanabilir o yüzden solid prensiplerine göre tasarladığımız yapıda ihtiyacımız olan şeyi ihtiyaç anında kullanıyoruz, işi bittiğinde çöpe gitmesi gerekiyorsa çöpe gönderiyoruz.🙂
Nullability uyarısına karşılık hem interface hem de repository tarafında fonksiyonu T? olarak tanımlarsak uyarı ortadan kalkıyor hocam. Emeğinize sağlık teşekkürler.
Yazdığımız metotların dışına context sınıfından bir nesne oluşturduğumuzda tek seferde yazıp bütün metotlarda kullanabiliriz. Using kullanımı ise yazılan metot içindir, her metot için tekrar yazılması gerekir. (başka bir arkadaşda aynısı yazmış ondan alıntı yaptım)
using ifadesi, Context nesnesini kullandıktan sonra otomatik olarak kaynakları temizler ve belleği serbest bırakır. Yani bu şekilde kullanmak daha optimize bir kullanım olabilir.
public class GenericRepository : IGenericDal where T : class burada yazdığımız ilk t değeri tam olarak neyi ifade ediyor tam anlayamadım?? bilen varsa açıklayabilir??
merhaba Hocam, cozum yokunda using keyword ile kaynak kullanimini verimli bir sekile kullanmak tabi ki mantikli, fakat bu sekilde siki bagl ibir yapi kullaniyor muyuz? Dependency injection ile constructordan cagirip ilgili gneeric classta context i kullanmamiz solid prensipleri ile uyumlu olacaktir. Bu konu hakkindaki yorumunuzu merak ediyorum, tesekkurler.
GetByID'de alınan uyarının sebebi eğer ben bana gönderilen id değerinde bir veri bulamazsam null döndürürüm bu durumda T tipindeki nesne null olacaktır diyor. C# 8 ile gelen bir özellik bu nullability özelliği. O uyarıyı kaldırmak için T nesnesinin yanına ? koyarak null olma durumunu kabul ettiğimizi belirtebiliriz. Bu durumda uyarı ortadan kalkacaktır.
Her method için yeni bir DbContext nesnesi oluşturmak uygulamanın performansını artırırken, birbirinden bağımsız işlemler yapabilmenize olanak tanır. Ancak, methodların dışında tek bir DbContext nesnesi oluşturmak, bellek kullanımını azaltırken, bir işlem başarısız olduğunda diğer tüm işlemleri etkileyebilir.
Hocam merhaba. Hocam, burada UnitOfWork'ü mü kullanacağız? Kodu şu şekilde yazarsak daha iyi olur diye düşünüyorum : protected readonly AppDbContext _context; private readonly DbSet _dbSet; public GenericRepository(AppDbContext context) { _context = context; _dbSet=_context.Set(); }
Emeğinize sağlık hocam...
using anahtar kelimesini kullanmamızın sebebi : Garbace collector(tanımlanan nesneyi dispose eder.) denilen toplayıcının görevi olan otomatik imha etme görevini devralmak isteriz. Tanımladığımız nesne örneğini dispose etmeyi garantilemek isteriz. Başka bir deyişle ram'den atmak isteriz. Çünkü garbace collector denilen yapı kafasına ne zaman eserse o zaman nesneleri imha eder :)
Dispose Method kullanımı anlık olarak RAM'de yer açılıp scopeların arasındaki işlem bittikten sonra RAM'de açılan alanın boşaltılması yolu ile ilerlediğinden. Sabit bir RAM alanının tutulması ve performans kaybının önüne geçilmesi için tercih edilmesi çok mükemmel bir yöntemdir.
Ayrıca hocam ağzınıza sağlık çok güzel gidiyor proje
😍
Emeğinize sağlık hocam. Heyecanla yeni bölümleri bekliyorum 😊
Emeğinize sağlık hocam.
Yazdığımız metotların dışına context sınıfından bir nesne oluşturduğumuzda tek seferde yazıp bütün metotlarda kullanabiliriz. Using kullanımı ise yazılan metot içindir, her metot için tekrar yazılması gerekir.
Ağzınıza sağlık hocam emekleriniz için çok teşekkür ederim.
"using var context=new Context();" bu kod satırın method dışına yazılması
her method için ayrı ayrı yazmaya gerek kalmamış olur
Merhabalar hocam Egemen arkdaşımın söylediğine katılmakla beraber şunu eklemek istiyorum global olarak tanımlanacak contex sınıfı bir instance ayrıca bir ram kullanımına sebep olmakla beraber using kullanılmadan oluşturulusa ordan da bir performans kaybı yaşanabilir o yüzden solid prensiplerine göre tasarladığımız yapıda ihtiyacımız olan şeyi ihtiyaç anında kullanıyoruz, işi bittiğinde çöpe gitmesi gerekiyorsa çöpe gönderiyoruz.🙂
Emeğinize sağlık hocam...
Emeğinize sağlık Hocam.
Emeğinize sağlık hocam
Using olara kullanmak context nesnesini kullanımı sonrasında otomatik içeridekileri belleği siler ve temizler.
Nullability uyarısına karşılık hem interface hem de repository tarafında fonksiyonu T? olarak tanımlarsak uyarı ortadan kalkıyor hocam. Emeğinize sağlık teşekkürler.
Teşekürler hocam : )
Yazdığımız metotların dışına context sınıfından bir nesne oluşturduğumuzda tek seferde yazıp bütün metotlarda kullanabiliriz. Using kullanımı ise yazılan metot içindir, her metot için tekrar yazılması gerekir. (başka bir arkadaşda aynısı yazmış ondan alıntı yaptım)
using ifadesi, Context nesnesini kullandıktan sonra otomatik olarak kaynakları temizler ve belleği serbest bırakır. Yani bu şekilde kullanmak daha optimize bir kullanım olabilir.
void yerine Task kullanmak async işlemler için daha yerinde olur mu hocam?
public class GenericRepository : IGenericDal where T : class
burada yazdığımız ilk t değeri tam olarak neyi ifade ediyor tam anlayamadım?? bilen varsa açıklayabilir??
Burada niye dependency injection uygulamak yerine Disponse method uyguladık??
merhaba Hocam, cozum yokunda using keyword ile kaynak kullanimini verimli bir sekile kullanmak tabi ki mantikli, fakat bu sekilde siki bagl ibir yapi kullaniyor muyuz? Dependency injection ile constructordan cagirip ilgili gneeric classta context i kullanmamiz solid prensipleri ile uyumlu olacaktir. Bu konu hakkindaki yorumunuzu merak ediyorum, tesekkurler.
GetByID'de alınan uyarının sebebi eğer ben bana gönderilen id değerinde bir veri bulamazsam null döndürürüm bu durumda T tipindeki nesne null olacaktır diyor. C# 8 ile gelen bir özellik bu nullability özelliği. O uyarıyı kaldırmak için T nesnesinin yanına ? koyarak null olma durumunu kabul ettiğimizi belirtebiliriz. Bu durumda uyarı ortadan kalkacaktır.
yukarıdan gelen T değeri kullanıcıdan mı almış olduk?? hangi t değerine kaldırmış olduk tam anlayamadım
Her method için yeni bir DbContext nesnesi oluşturmak uygulamanın performansını artırırken, birbirinden bağımsız işlemler yapabilmenize olanak tanır. Ancak, methodların dışında tek bir DbContext nesnesi oluşturmak, bellek kullanımını azaltırken, bir işlem başarısız olduğunda diğer tüm işlemleri etkileyebilir.
💻☺
Hocam merhaba. Hocam, burada UnitOfWork'ü mü kullanacağız? Kodu şu şekilde yazarsak daha iyi olur diye düşünüyorum :
protected readonly AppDbContext _context;
private readonly DbSet _dbSet;
public GenericRepository(AppDbContext context)
{
_context = context;
_dbSet=_context.Set();
}
Context sınıfı ctor olarak tutulabilir elbette :)
👨💻
Emeğinize sağlık hocam