Trước tiên, tôi sử dụng Mã EF và trình biên dịch nhỏ bên trong phương thức khởi tạo Ngữ cảnh của tôi, tôi tạo một nhà máy kết nối mới và chuyển nó vào phương thức ProfiledDbConnectionFactory, phương thức này trả về một kết nối được cấu hình mà sau đó bạn có thể đặt làm DefaultConnectionFactory của ngữ cảnh.
public MyConext()
{
var factory = new ConnectionFactory();
var profiled = new MvcMiniProfiler.Data.ProfiledDbConnectionFactory(factory);
Database.DefaultConnectionFactory = profiled;
}
Kết nối Facotry chỉ trả về kết nối sql mới
public class ConnectionFactory :IDbConnectionFactory
{
public DbConnection CreateConnection()
{
var cnn = new System.Data.SqlClient.SqlConnection(ConfigurationManager.ConnectionStrings["SomeConnection"].ToString());
return cnn;
}
Bạn cũng cần thêm ProfiledDBProvider vào tệp cấu hình web. Đảm bảo rằng số phiên bản là chính xác cho bạn.
<system.data>
<DbProviderFactories>
<remove invariant="MvcMiniProfiler.Data.ProfiledDbProvider" />
<add name="MvcMiniProfiler.Data.ProfiledDbProvider" invariant="MvcMiniProfiler.Data.ProfiledDbProvider"
description="MvcMiniProfiler.Data.ProfiledDbProvider"
type="MvcMiniProfiler.Data.ProfiledDbProviderFactory, MvcMiniProfiler, Version=1.7.0.0, Culture=neutral, PublicKeyToken=b44f9351044011a3" />
</DbProviderFactories>
</system.data>
Điều này hoạt động tốt đối với tôi trong cả biểu mẫu web MVC và asp.net bằng cách sử dụng gói nuget Miniprofiler. Tôi cũng sẽ kiểm tra phiên bản MVC mới của gói nuget tự động định cấu hình hồ sơ như một phần của bộ lọc hành động toàn cầu.