5

codefirst benim veritabanı bağlantı dizesini almak için aşağıdaki kodu kullanabilirsiniz:Veritabanı bilgisi ilk olarak entityframework veritabanıyla nasıl edinilir? Ben Entity Framework kullandığınızda

var db = new dbContext(); 
Console.Writeline(db.Database.Connection.ConnectionString); 

Ama önce veritabanını yaptığınızda, Veritabanı kullanılamaz. Nasıl olur (çalışma zamanında koddan) varlık çerçevesi tarafından kullanılan veritabanı bağlantı dizesi alma hakkında gider?

cevap

12

kodu: daima

var db = new dbContext(); 
Console.Writeline(db.Database.Connection.ConnectionString); 

çalışır. Yani, varlık modelinizi veritabanınızdan oluşturduysanız ve DbContext Generator T4 şablonunu kullandıysanız, yine de kullanabilirsiniz.

var connection = context.Connection as EntityConnection; 
if (connection == null) throw new ...; 
var storeConnectionString = connection.StoreConnection.ConnectionString; 
+0

yüzden kullandığım bu çözüm bulmadım querystring ayrıştırmak için (ki bu iyi değil ;-)). Bu kodumu çok geliştirdi, teşekkürler! – Tillito

8

... Ve belirli bağlantı dizesi özellikleri daha sonra açığa çıkabilen: yerine ObjectContext API kullandıysanız

bu çağırmalıdır

using System.Data.SqlClient; 



    internal static string GetDatabaseName() 
    { 
     using (var _db = new MyProjectEntities()) 
     { 
      return new SqlConnectionStringBuilder(_db.Database.Connection.ConnectionString).InitialCatalog; 
     } 
    } 
İlgili konular