C# 使用EF从SQL中的许多不同表中获取数据的速度很慢

C# 使用EF从SQL中的许多不同表中获取数据的速度很慢,c#,asp.net-mvc,performance,entity-framework,dbcontext,C#,Asp.net Mvc,Performance,Entity Framework,Dbcontext,我在网页上有一个表单,其中有几个组合框,每个组合框都列出了同一数据库中不同表中的条目 在测试我的代码时,由于从SQL检索到的所有数据,打开网页似乎很慢 有没有更有效的方法来检索我的组合框数据 下面是我用来填充onGet列表的代码,后来在razorpages中用于填充组合框 public async Task<IActionResult> OnGetAsync(int? id) { List1 = await _dbcontext.tbl1.ToLis

我在网页上有一个表单,其中有几个组合框,每个组合框都列出了同一数据库中不同表中的条目

在测试我的代码时,由于从SQL检索到的所有数据,打开网页似乎很慢

有没有更有效的方法来检索我的组合框数据

下面是我用来填充onGet列表的代码,后来在razorpages中用于填充组合框

public async Task<IActionResult> OnGetAsync(int? id) {

                List1 = await _dbcontext.tbl1.ToListAsync();
                List2 = await _dbcontext.tbl2.ToListAsync();
                List3 = await _dbcontext.tbl3.ToListAsync();
                List4 = await _dbcontext.tbl4.ToListAsync();
    }
公共异步任务OnGetAsync(int?id){ List1=await_dbcontext.tbl1.tolistSync(); List2=await_dbcontext.tbl2.tolistSync(); List3=await_dbcontext.tbl3.tolistSync(); List4=await_dbcontext.tbl4.tolistSync(); }
这是一个广泛的问题。我们需要更多的信息为您提供想法。但是我建议您将操作分成四个不同的调用(AJAX调用),以便不断加载组合框

差不多

public async Task<IActionResult> OnGetAsync1(int? id) 
{
    return await _dbcontext.tbl1.ToListAsync();
}
public async Task<IActionResult> OnGetAsync2(int? id) 
{
    return await _dbcontext.tbl2.ToListAsync();
}
...
公共异步任务OnGetAsync1(int?id)
{
返回wait_dbcontext.tbl1.tolistSync();
}
公共异步任务OnGetAsync2(int?id)
{
return wait_dbcontext.tbl2.toListSync();
}
...

这是一个广泛的问题。我们需要更多的信息为您提供想法。但是我建议您将操作分成四个不同的调用(AJAX调用),以便不断加载组合框

差不多

public async Task<IActionResult> OnGetAsync1(int? id) 
{
    return await _dbcontext.tbl1.ToListAsync();
}
public async Task<IActionResult> OnGetAsync2(int? id) 
{
    return await _dbcontext.tbl2.ToListAsync();
}
...
公共异步任务OnGetAsync1(int?id)
{
返回wait_dbcontext.tbl1.tolistSync();
}
公共异步任务OnGetAsync2(int?id)
{
return wait_dbcontext.tbl2.toListSync();
}
...

您正在将整个表转换为列表。。这意味着,若您的表有1000条记录,那个么1000条记录将保存在服务器的内存中,这就是它可能变慢的原因。。。尝试优化查询,只使用所需的行,而不是整表或使用页面,不完全确定您的要求是什么,但是如果这个页面需要快速加载,我会考虑缓存这些结果为JSON,并直接从文件返回JSON或ReDISHY将整个表转换为列表。这意味着,若您的表有1000条记录,那个么1000条记录将保存在服务器的内存中,这就是它可能变慢的原因。。。尝试优化查询,只使用所需的行,不使用整表或使用页面,不完全确定您的需求是什么,但是如果这个页面需要快速加载,我会考虑缓存这些结果为JSON,并直接从文件或ReDDIS返回JSON。