23 Aralık 2014 Salı

Asp.net Entity Framework kullanım anında connectino string değiştirme

Merhaba.Benim aynı tablolara ait birsürü veritabanım var ve giriş yapan kullanıcıya göre o veritabanından veri çekmesi gerekiyordu.Onun için öncelikle modeli oluşturan cs dosyasında şu değişikliği yapıyoruz.

public VeriTabani(String connString)
            : base(connString)

Sonrasında değiştireceğimiz sayfaya bu metodu ekliyoruz

private String BuildConnectionString(String DataSource, String Database)
    {
        // Build the connection string from the provided datasource and database
        String connString = @"data source=" + DataSource + ";initial catalog=" +
        Database + ";integrated security=True;MultipleActiveResultSets=True;App=EntityFramework;";

        // Build the MetaData... feel free to copy/paste it from the connection string in the config file.
        EntityConnectionStringBuilder esb = new EntityConnectionStringBuilder();
        esb.Metadata = "res://*/AW_Model.csdl|res://*/AW_Model.ssdl|res://*/AW_Model.msl";
        esb.Provider = "System.Data.SqlClient";
        esb.ProviderConnectionString = connString;

        //Dönecek stringi seçiyoruz
        return esb.ToString();
    }


Yukarıdaki satırda dikkat etmemiz gereken konu aslında bu örnek model firste göre ayarlanmış.Bu metodda esb.ToString(); yerine connString i döndürürsek code-firsttede çalışacaktır.
En son veritabanına bağlanırken de modeli yarattığımız satırda şöyle kullanım yapıyoruzç

AdventureWorksEntities entities = new AdventureWorksEntities(BuildConnectionString
                        ("<DataSource>", "<Database>"));

Hiç yorum yok:

Yorum Gönder