oyle bakarken denk geldi belki faydası olur.. https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/expression-trees/index

Hocam cevapların için ncelikle teşekkürler 3. cevabını anladım ama 1-2 tam oturmadı şimdi 1. soru için T GetById ; T Get ; yani Expression<Func<T, bool>> expression bu kodu diğer getbyid den farklı olarak ne yapıyor? Bi duruma gre kullanılıyosa bana gerçekci bi rnek verebilir misin? 2. soru içinde IQueryable GetMany ; bu kodun yazılacağı yer IRepository mi olmalı yani dediğin gibi ise bu kodu api blümüne yazmamız gerekmiyomu çünkü irepository direk olarak db den çekicek verileri az çok ne kadar veri var tahmin edilebilir diye düşünüyorum yada bunu acaba arama yapmak için mi yazmış olabilir? Api yazmayı bilmiyorum ve katmanlı mimariye yeni başladım o yüzden sorularım çok basit yada anlamsız gelebilir ANZAK tarafından 03/Kas/17 01:48 tarihinde düzenlenmiştir Amatr forever

ANZAK bunu yazdı unbalanced bunu yazdı şimdi net oturdu hocam teşekkürler. cybermole bunu yazdı oyle bakarken denk geldi belki faydası olur.. https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/expression-trees/index Teşekkürler hocam ama bu kadar ingilizcem yok :\ Amatr forever

hizli hizli yazayim anlamadigin yer varsa sorarsin tekrar cikmam lazim cünkü. 1- bahsettigin int id bildigin normal fonksiyon parametresi, digerine predicate deniyor ve parametreye gre bool vermen lazim ama syle mesela bu get fonksiyonunu cagirirken get(a=>a >10); seklinde cagirman gerek 2- IQueryable de aslinda IEnumerable den türemistir. Local listeler icin genelde IEnumerable, remote listeler icin digeri IQueryable. yani bir webservisin var ve oradan bi sonuc bekliyorsun ama ne kadar dner fikrin yok.. Bu gibi durumlarda IQueryable kullanilmasi daha uygun. 3- using keyword u IDisposable arayüzünden türeyen siniflarin instancelarini , isi bittikten sonra bellekten kaldirmak icin kullanilir. Yani SqlConnection sinifina bakinca muhtemelen IDisposable dan türedigini greceksin. using parantezinden sonra artik sql sinifindan olusturdugun instance artik kullanamzsin, hem kodda gecerli degil hem de bellekte yok edilmis. Cünkü nesnenin Dispose metodu cagrilmis. Context i sürekli kullaniyorsan onu sürekli yok etmen gerekmez. O yüzden using olmadan cagrilmis. Ayrica using kullanmak icin dedigim gibi BlogContext sinifnin da IDisposable den türemis olmasi lazim Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.

unbalanced bunu yazdı Hocam cevapların için ncelikle teşekkürler 3. cevabını anladım ama 1-2 tam oturmadı şimdi 1. soru için T GetById ; T Get ; yani Expression<Func<T, bool>> expression bu kodu diğer getbyid den farklı olarak ne yapıyor? Bi duruma gre kullanılıyosa bana gerçekci bi rnek verebilir misin? 2. soru içinde IQueryable GetMany ; bu kodun yazılacağı yer IRepository mi olmalı yani dediğin gibi ise bu kodu api blümüne yazmamız gerekmiyomu çünkü irepository direk olarak db den çekicek verileri az çok ne kadar veri var tahmin edilebilir diye düşünüyorum yada bunu acaba arama yapmak için mi yazmış olabilir? Api yazmayı bilmiyorum ve katmanlı mimariye yeni başladım o yüzden sorularım çok basit yada anlamsız gelebilir unbalanced hocamın müsadesiyle ben anlatmaya çalışayım. GetById ile yalnızca id'ye gre sorgulama yapabiliyorsun adından anlaşıldığı gibi. Expression<Func<T, bool>> türünde parametre alan Get methodunda ise o sınıfın herhangi bir propertysi ile sorgulama yapabilirsin. rneğin; var anzaklar = userRepository. Get ; var yasi30danBuyukler = userRepository. Get(user => user. Age > 30); var idsi5olanlar = userRepository. Get(user => user. Id 5); Grüldüğü gibi predicate kullanarak da idye gre sorgulama yapılabiliyor fakat id sorgusu çok sık kullanılabildiği için ayrı bir method yazma gereği duyulmuş. Diğer soruda api olayı kafanı karıştırmasın, ilk aşamada tüm verileri veritabanından çektiğini düşünebilirsin. Veritabanında 10 tane de veri olabilir milyarlarca da. Tüm repository classların IRepositoryi implement edeceği için hangi tabloda ne kadar veri olacağını tahmin edemeyebilirsin. Mesela tahribat.com'da tüm kullanıcıların tüm işlemlerinin loglandığı bir tablo olduğunu varsay, 15 yıldan fazla zamandır tüm kullanıcıların tüm hareketleri o tabloya yazılıyor. Şu sorgunun kaç veri getireceğini şahsen ben tahmin edemiyorum: logRepository. Get(log => log. Date. Year > 2005); Everyone sees just what they want to see.

Bi eğitim serisi ile bu katmanlı mimariyi grenmeye çalışıyorum eğitim genel olarak iyi ama bazı yerleri hiç anlatmadan geçiyor bende oturmayıncada ilerleyemiyorum sorularım aşağıdaki gibi cevaplayan arkadaşlara şimdiden teşekkürler. public interface IRepository<T> where T : class Şu şekilde bi IRepository var. Insert, update, delete, count, save kisimlarini anladım ama 2 tane farklı get yazdı id ye gre T GetById ; T Get ; Bu 2 sinin birbirinden farkı nedir acaba? GetById li olan kısmı anladım ama alttaki karmaşık geldi ve neden yazdığını anlayamadım IEnumerable<T> GetAll ; IQueryable<T> GetMany ; Birde bu 2 kod satırı var birinde Enumerable digerinde Queryable kullanılmış enum ve query nin farkına baktım internetten query li olan diğerinden daha hızlıymış bu eğitimi çeken çocuk yanlışlıkla mı yapmış yoksa bi nedeni mi var birinde query birinde enum kullanılmasının? Son olarakta rneğin KullaniciRepository sayfasında yani bu implement işleminin gerçekleştiği yerde db yi alttaki şekilde çağarıyor private readonly BlogContext _context = new BlogContext ; Bu kullanımın aşağıdaki kullanımdan farkı ne yani biri doğru biri yanlış mı yada birinin kullanıldığı yer ayrı diğerinin kullanıldığı yer ayrı mı? using (SqlConnection con = new SqlConnection , con2 = new SqlConnection { Yani bu using kullanımı nedir neden ve nasıl kullanılır benim bu readonly li kod blogumda bu using i kullanmama gerek var mı varsa nasıl kullanıcam yoksa neden yok? Soruların tümüne cevap vermenize gerek yok bildiklerinizi yazmanız yeterli ANZAK tarafından 03/Kas/17 18:09 tarihinde düzenlenmiştir Amatr forever