Moja DbContext konstruktor wygląda następująco:Jak skonfigurować program mvc-mini-profiler do pracy z DbContext, który przekazuje nazwę ciągu połączenia do bazy?
public class FnordDbContext : DbContext
{
public FnordDbContext() : base("Fnord")
{
}
/* stuff */
}
i mój MVC-mini-Profiler inicjującego wygląda następująco:
var sqlConnectionFactory = new SqlConnectionFactory(ConfigurationManager.ConnectionStrings["Fnord"].ConnectionString);
var profiledConnectionFactory = new MvcMiniProfiler.Data.ProfiledDbConnectionFactory(sqlConnectionFactory);
Database.DefaultConnectionFactory = profiledConnectionFactory;
Jeśli usunąć ciąg połączenia w moim DbContext ctor, mam profilowanie jako spodziewany. Ale nie chcę nazywać łańcucha połączenia zgodnie z konwencją EF. Co muszę zmienić, aby program mvc-mini-profiler działał z moim użyciem DbContext?
Początkowo to nie działa dla mnie. Otrzymałem błąd "Niepoprawna nazwa obiektu" dbo.EdmMetadata "" dla wszystkich pytań. Ponieważ używam migracji, nie ma EdmMetadata. Aby to naprawić, musiałem dodać: modelBuilder.Conventions.Remove(); do mojego OnModelCreating. Sądzę, że nadal będę to oznaczać jako odpowiedź. : P –
Korzystanie z najnowszych wersji EF i MiniProfiler musiałem zrobić to: public MyDbContext() : podstawa (GetProfiledConnection(), true) { } private static DbConnection GetProfiledConnection() { var connectionString = ConfigurationManager. ConnectionStrings ["name"]. ConnectionString; var connection = new SqlConnection (connectionString); return new ProfiledDbConnection (połączenie, MiniProfiler.Current); } –