• 08-10-2018, 14:34:46
    #1
    Arkadaşlar Selam,

    Katmanlı yapıda bir projem var. Sql procedur ile verileri ekleme,çıkartma,düzenleme ve listelemek zorundayım. Bunu repository ile sağlıyorum. Ancak iç içe kategori olan menülerimi listelettirme aşamasında çok yavaşlama oldu. (Eski projede böyle bir sorun yoktu). İç içe kategori sistemini RecursiveMenu şeklinde yaptım üstelik.

    Repository içindeki fonksiyonum:
    public IEnumerable<T> ExecWithStoreProcedure(string query, params object[] parameters)
    {
    return _context.Database.SqlQuery<T>(query, parameters);
    }
    Controllerim:
    PartialViewServices Servis = new PartialViewServices();
    var SS = Servis.CertMenu();
    return PartialView(SS);

    Daha önceden bu şekilde bir yapı kullanan arkadaşlar oldu ise öneride bulunurlarsa sevinirim.
  • 09-10-2018, 00:10:41
    #2
    Kimlik doğrulama veya yönetimden onay bekliyor.
    View tarafı ne durumda?
    Eski projede de aynı store procedure mu kullanılıyordu? Sql'de store procedure çalıştırınca yine yavaşlık var mı?
  • 09-10-2018, 08:58:33
    #3
    rob33n adlı üyeden alıntı: mesajı görüntüle
    View tarafı ne durumda?
    Eski projede de aynı store procedure mu kullanılıyordu? Sql'de store procedure çalıştırınca yine yavaşlık var mı?
    partialview yaptım zaten. evet eski projemde de aynı proceduru kullanıyordum. Sql de çalıştırınca yavaşlık yok. Katmanlı mimari de bir sebepten ötürü procedur kullanılmaz diye bir yazı okumuştum. Ama bana mantıksız geldi.
  • 13-10-2018, 22:19:33
    #4
    Katmanlı mimaride store procedure kullanılmaz diye bir açıklama çok sağlıklı değil.
    Muhtemelen recursive kodunda sıkıntı vardır diye düşünüyorum. Onun haricinde mapping'te sorun olabilir, AutoDetectChangesEnabled veya ProxyCreationEnabled false yaparak deneyin.
    EF ile context oluşturken birkaç ayar var onları kaçırmış olabilirsiniz. http://www.entityframeworktutorial.n...framework.aspx
  • 13-10-2018, 22:32:56
    #5
    Recursive functionda sorun var muhtemelen. kontrol edip optimize etmek gerekebilir. Kendi tecrübem recursive functiondan uzak durmak lazım. Zira hiç bir zaman istediğim kadar hızlı olmadı.
    Katmanlı mimaride de stored procedure kullanılabilir yerine göre.
  • 13-10-2018, 23:25:29
    #6
    Sayfa load olduğunda, yalnız 1 seviye menüleri çekip, ekranda gösterseniz,
    Ajax la menüden click edilenin altını (varsa) doldursanız,
    Böylece sonsuza kadar menü seviyesi oluşturmuş,
    Ve yalnız gerekli olanları çağırmış olacağınız içinde performansı artırmış olursunuz.



    Tapatalk kullanarak iPhone aracılığıyla gönderildi