C# EntityFramework DbContext构造函数需要5秒以上-性能问题
AuthContext的类定义,它几乎有30-35个数据库集C# EntityFramework DbContext构造函数需要5秒以上-性能问题,c#,entity-framework,asp.net-web-api2,C#,Entity Framework,Asp.net Web Api2,AuthContext的类定义,它几乎有30-35个数据库集 public class AuthContext : IdentityDbContext<ApplicationUser> { internal static string connectionstring { get { return connection_string;
public class AuthContext : IdentityDbContext<ApplicationUser>
{
internal static string connectionstring
{
get
{
return connection_string;
}
}
public AuthContext() : base(connectionstring)
{
}
public DbSet<Class1> Class1 { get; set; }
public DbSet<Class2> Class2 { get; set; }
}
Authcontext构造函数的加载大约需要5-6秒,我们如何初始化singleton对象并将其用于所有WebAPI请求
我阅读了文档,发现EF确保为每个数据集创建单例对象
请建议更改以提高性能
提前谢谢 我建议您分析生成的SQL查询,而不是创建单例上下文。您在哪里设置连接字符串?可能构造函数得到的是一个空字符串,这会导致性能问题??连接字符串是一个全局静态属性。获取{return connection_string;(从公共位置的配置读取)}@SlavaUtesinov在构造函数调用时EF是否生成任何SQL?@johnepraimtugado我总是获取正确的连接字符串。
public class AuthRepository : IDisposable
{
private AuthContext _ctx;
public AuthRepository()
{
_ctx = new AuthContext();
}
public void somemethod(Class1 item)
{
_ctx.Class1.add(item);
_ctx.SaveChanges()
}
}