2012-09-30 28 views
6

Windows uygulamasında SQL Server CE 4.0'ı kullandım ve modelini oluşturmak için Entity Framework'ü kullandım.SQL Server CE için dinamik bağlantı dizesi nasıl kullanılır?

İyi çalışıyor ancak sorunlarım, bağlantı dizesini değiştirmek için bir kurucu içermiyor ve varsayılan olarak app.config dosyasındaki bağlantı dizesini okur.

using (var Context = new MyEntitiesModel(//has no constructor)) 
{ 
     ... 
} 

Ben dinamik bir bağlantı dizesi ve

using (var Context = new MyEntitiesModel()) 
    { 
     Context.Database.Connection.ConnectionString = entityConnection.ConnectionString; 
    } 

Bu arada çalışıyor ama app.config dosyada başka bir bağlantı dizesi kaldırmak eğer bana bunu verdi oluşturun. Varsayılan yapıcı bunu kullandığı için

error = invalid metasource ....

bunu nasıl halledebiliriz?

+0

DbConnection'ı parametre olarak alan bir kurucu yok mu? –

+0

evet – motevalizadeh

+1

bağlantı dizgisini değiştirmek için bir kurucu yok, sadece app.config dosyasında bir kukla bağlantı dizesinde bırakamaz mısınız? – Seph

cevap

2

Kendi kurucunuzu oluşturun. MyEntitiesModel kısmi sınıf, sınıfın kendi kısmi kısmını ekleyebilir ve bir bağlantı dizesi kabul eden kurucu ekleyebilir.

public partial class MyEntitiesModel { 
    public MyEntitiesModel(string connectionString) : base(connectionString) { } 
} 
+0

hatası: Veri Tabanı İlk ve Model İlk geliştirme için T4 şablonları kullanılarak oluşturulan Kod, Kod İlk modunda kullanıldığında doğru çalışmayabilir. Önce Veri veya Model Önce kullanmaya devam etmek için, Entity Framework bağlantı dizesinin yürütme uygulamasının yapılandırma dosyasında belirtildiğinden emin olun. Bu ilkeleri kullanmak için, önce Veritabanı Önce ya da Önce Modeli'nden, Kod İlkesi ile öznitelikleri ya da DbModelBuilder API'sini kullanarak herhangi bir ek yapılandırma ekleyin ve sonra bu özel durumu atanan kodu kaldırın. – motevalizadeh

+0

Bağlantı dizginiz nasıl görünür? –

+0

"veri kaynağı = | DataDirectory | \\ MyDb.sdf; password = xxx; kalıcı güvenlik bilgisi = True"; – motevalizadeh

1

DbContext dosyasını kullanıyorum. Birkaç Aşırı Yük Üreticisi vardır: ObjectContext, benzer bir yapıcı aşırı yüklenmesine de sahiptir.

System.Data.Entity DBContext örneği

Context = new BosMasterEntities(nameOrConnectionString: nameOrConnectionString); 

Aynı anda birden DBS bağlanabilirsiniz.

İlgili konular