我有遭受性能瓶颈的 ASP.NET MVC 应用程序。我想分析 EF 连接并找出允许的最大 EF 连接和当前打开的连接。任何建议如何做到这一点?
我的存储库代码
using EntityFramework.Patterns;
public class ServiceRepository : IServiceRepository
{
private readonly IRepository<User> _userRepository;
private readonly IUnitOfWork _unitOfWork;
public ServiceRepository(DbContext dbContext)
{
var dbContextAdapter = new DbContextAdapter(dbContext);
_unitOfWork = new UnitOfWork(dbContextAdapter);
_userRepository = new Repository<User>(dbContextAdapter);
}
public IQueryable<User> GetUsersByProduct(int productId)
{
return _userRepository.AsQueryable().Where(p => p.Orders.Any(o => o.ProductId == productId));
}
//Skip code
public void Commit()
{
_unitOfWork.Commit();
}
}
用 Ninject 注射
private static void RegisterServices(IKernel kernel)
{
var connectionString = ConfigurationManager.ConnectionStrings["Entities"].ConnectionString;
kernel.Bind(typeof(DbContext)).ToMethod(context => new DbContext(connectionString)).InRequestScope();
kernel.Bind<IServiceRepository>().To<ServiceRepository>().InRequestScope();
}