【发布时间】:2017-02-08 16:03:16
【问题描述】:
我的 dotnet 核心项目与实体框架核心和 mysql 连接器存在性能问题。
我按照以下教程创建了 dbcontext:http://insidemysql.com/howto-starting-with-mysql-ef-core-provider-and-connectornet-7-0-4/
public class MhdContext : DbContext
{
public MhdContext(DbContextOptions<MhdContext> options) : base(options) { }
public DbSet<Vehicle> Vehicles { get; set; }
}
public static class MhdContextFactory
{
public static MhdContext Create(string connectionString)
{
var optionsBuilder = new DbContextOptionsBuilder<MhdContext>();
optionsBuilder.UseMySQL(connectionString);
//Ensure database creation
var context = new MhdContext(optionsBuilder.Options);
context.Database.EnsureCreated();
var serviceProvider = context.GetInfrastructure<IServiceProvider>();
var loggerFactory = serviceProvider.GetService<ILoggerFactory>();
loggerFactory.AddProvider(new MyLoggerProvider());
return context;
}
}
在我的控制器中,我调用了这个方法:
public async Task<Vehicle[]> GetAllVehicles()
{
_logger.LogInformation("Getting All vehicles");
using (var dbContext = MhdContextFactory.Create(_dbConfig.ConnectionString))
{
var vehicles = await dbContext.Vehicles.AsNoTracking()
.FromSql("SELECT * FROM Vehicles AS v group by v.VehicleId order by LastUpdate")
.ToArrayAsync();
return vehicles;
}
}
在第一次请求之后,一切看起来都正常
在几次请求之后,有重复的 sql 命令并增加 第 7 次请求日志:https://www.dropbox.com/s/2ezyowyubq1orsn/7thRequest.txt?dl=0
你能帮我解决我做错了什么吗?
【问题讨论】:
标签: mysql entity-framework asp.net-core