Я с большим успехом прошу EF 6 DbSet.Local в течение ряда лет.Однако делать то же самое в EF Core медленнее в 6 раз, что, к сожалению, является для меня показательным шагом, так как я имею дело с огромным количеством данных, что опять же мешает мне перейти с EF 6 на EF Core.
Пожалуйста, помогите мне решить эту проблему.
Ниже приведен пример, который можно запустить как в EF 6., так и в EF Core
private BlogContext _blogContext;
public void BlogTest()
{
_logger.Information("BlogTest started");
_blogContext = new BlogContext();
_blogContext.ChangeTracker.AutoDetectChangesEnabled = false; // EF Core
//_blogContext.Configuration.AutoDetectChangesEnabled = false; // EF 6
// Add blogs to context
for (int i = 0; i < 10000; i++)
{
_blogContext.Blogs.Add(new Blog { ID = i });
}
_logger.Information("BlogTest continued");
// Loop blogs in context
for (int i = 1; i < 100000; i++)
{
foreach (var blog in _blogContext.Blogs.Local)
{
}
}
_logger.Information("BlogTest ended");
}
public class Blog
{
public int ID { get; set; }
}
public class BlogContext: DbContext
{
public DbSet<Blog> Blogs { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlServer("Server=(localdb)\\mssqllocaldb;Database=Blog;Trusted_Connection=True;MultipleActiveResultSets=True;");
}
}