merhaba

entity framework de sql bağlantısını objectContext ile sağlıyorum, bağlantı için bir sınıf oluşturdum

public class DatabaseEntities:ObjectContext
{
    public static ManagerEntities GetEntities
    {
        get
        {
            return new ManagerEntities(ConfigurationManager.ConnectionStrings["ManagerEntities"].ConnectionString);

        }
    }

}

ve bunuda kullandığım class ların başında çağırıyorum ManagerEntities entities = DatabaseEntities.GetEntities;

şimdi sormak istediğim her cs class larda ben bunu çagırıp sql bağlantısını açıyorum,ancak bu bağlantı açıldığında sonra nasıl kapanıyor ? belli bir süre sonramı otomatik kapanıyor ve her seferinde bu bağlantıyı açmak sql tarafında ek bir yük değilmi ? çünkü user tablosu için user.cs de bağlantıyı açtım sonra farklı bir cs de yine bu bağlantıyı kullandım sürekli bunu yapmak standart lara uygun bir yapı değil gibi geliyor, bunun için şu olamazmı global asax içinde start da

ManagerEntities entities = DatabaseEntities.GetEntities; bunu kullansam bağlantı hep açık kalsa ve cs lerde bunu çağırmadan bilgileri çekebilirmiyim ?

son olarak şunun bir türlü mantığını kavrayamadım projenin cs dosyası olsun global asax startda olsun son kullanıcı her sayfayı açtığında postback de olsun mvc de olsun buralar her kullanıcı için çalışıyor dimi ? eğer öyleyse bu bağlantıyı sabitleyip cache saklayarak aynı kullanıcı tekrar girdiğinde cacdeki bağlantı kullanılabilinirmi ve bazı kodlar da görüyorum bu sql bağlantısını class altında değilde her method function da using anahtarı ile kullanmışlar

using (SqlConnection connection = new SqlConnection(connectionString))
{
}

yada x bir kod da kişi IDisposable dan inherit ettiği sınıfı yine using ile kullanmış bunun anlamı bağlantıyı sadece o method içinmi açıp sonra kapatıyor ? her method da sql bağlantısı için olsun menu den instance almak olsun using anahtarı ile kullanmak en üst class ın altında direk bir seferliğine tanıtmaktan farkı nedir ?

using (Menu menu = new Menu(webSiteId, languageId))
{
     return menu.GetMenu(menuTypeId);
}

public class Menu : IDisposable
{
    private Guid _WebSiteId;
    private Guid _LanguageId;
    private Guid _RootId;

    private string _Url;
}

teşekkür ederim

soruldu: 13 Oca '14, 05:05

Anatolium's gravatar image

Anatolium
78141520
cevap kabul oranı: 9%

değiştirildi: 13 Oca '14, 05:55

AliR%C4%B1za%20Ad%C4%B1yah%C5%9Fi's gravatar image

AliRıza Adıyahşi ♦
7.9k146288

Neden bağlantıyı kendiniz oluşturuyorsunuz? Siz veritabanı modelini zaten otomatik oluşturuyorsunuz ve oluştururken zaten, connectionString i ayarlamış oluyorsunuz. Yani tekrardan neden connectionString tanımlıyorsunuz?

(13 Oca '14, 05:59) AliRıza Adıyahşi ♦ AliR%C4%B1za%20Ad%C4%B1yah%C5%9Fi's gravatar image

ali bey merhaba ben her cs de web.config de tanımlanmış olan bağlantıyı açmak için yaptım public static nereyeIstersenEntities GetEntities { get { return new nereyeIstersenEntities(ConfigurationManager.ConnectionStrings["nereyeIstersenEntities"].ConnectionString); } }

normalde her cs de zaten entities den bir instance oluşturuyoruz bende aynı şekilde webconfig deki bağlantımı model entities e atayarak bağlantıyı açıp istediğim yerden kullanıyorum ancak diğer sorularıma müsait olduğunuzda cevaplayabilirseniz belki yanlış bildiğim bir konuda aydınlanam teşekkürler

(14 Oca '14, 02:12) Anatolium Anatolium's gravatar image
Bu soruya ilk cevap veren sen ol!
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×18

Soruldu: 13 Oca '14, 05:05

Görüntüleme: 539 kez

Son güncelleme: 14 Oca '14, 02:17

powered by BitNami OSQA