Benim DbContext ctor şöyle:Mvc-mini-profiler'ı, bağlantı dizesi adını tabana aktaran bir DbContext ile çalışacak şekilde nasıl yapılandırabilirim?
public class FnordDbContext : DbContext
{
public FnordDbContext() : base("Fnord")
{
}
/* stuff */
}
Ve mvc-mini-profiler bootstrapper şöyle görünüyor:
var sqlConnectionFactory = new SqlConnectionFactory(ConfigurationManager.ConnectionStrings["Fnord"].ConnectionString);
var profiledConnectionFactory = new MvcMiniProfiler.Data.ProfiledDbConnectionFactory(sqlConnectionFactory);
Database.DefaultConnectionFactory = profiledConnectionFactory;
DbContext ctorumdaki bağlantı dizgisini kaldırırsam profillemeyi beklendiği gibi alırım . Ancak bağlantı dizgimi EF'in sözleşmesine göre adlandırmak zorunda kalmak istemiyorum. Mvc-mini-profiler'i DbContext kullanımım ile değiştirmek için ne yapmam gerekiyor?
İlk başta bu benim için işe yaramadı. Tüm sıralar için "Geçersiz nesne adı 'dbo.EdmMetadata'" hatasını alıyorum. Göç kullanıyorum çünkü EdmMetadata yok. Bunu düzeltmek için şunları eklemeliydim: modelBuilder.Conventions.Remove(); OnModelCreating'e. Sanırım bunu bir cevap olarak işaretleyeceğim. : P –
Bunu yapmak zorunda EF ve MiniProfiler son sürümlerini kullanarak: Kamu MyDbContext() : Baz (GetProfiledConnection(), true) { } özel statik DbConnection GetProfiledConnection() { var connectionString = ConfigurationManager. . connectionStrings [ "ad"] ConnectionString; var connection = new SqlConnection (connectionString); yeni ProfiledDbConnection (bağlantı, MiniProfiler.Current) döndürür; } –