C# EF大约需要90秒来执行一个表查询
我在Entity Framework Core中有以下查询:C# EF大约需要90秒来执行一个表查询,c#,entity-framework-core,C#,Entity Framework Core,我在Entity Framework Core中有以下查询: private static List<Provider> JoinProvTables(State state) { using (var db = new ProvContext(state)) { return db.Provider //.Include(provider => provider.ServLocation) .ToLi
private static List<Provider> JoinProvTables(State state)
{
using (var db = new ProvContext(state))
{
return db.Provider
//.Include(provider => provider.ServLocation)
.ToList();
}
}
public static IEnumerable<T> Name(State state, string first, string last, string middle = null)
{
return (IEnumerable<T>)JoinProvTables(state)
.Where(provider => String.Equals(provider.FirstName, first, StringComparison.OrdinalIgnoreCase)
&& String.Equals(provider.LastName, last, StringComparison.OrdinalIgnoreCase))
.ToList();
}
和提供者模型:
namespace Company.Domain.Application.Models
{
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
[Table("TABLE", Schema = "SCHEMA")]
public class PRN_Provider
{
[Key]
public int ProvID { get; set; }
public PRN_ServLocation PRN_ServLocation { get; set; }
[Display(Name = "First Name")]
[StringLength(100)]
public string FirstName { get; set; }
[Display(Name = "Middle Name")]
[StringLength(100)]
public string MiddleName { get; set; }
[Display(Name = "Last Name")]
[StringLength(100)]
public string LastName { get; set; }
//... more of the same structure for fields
}
}
有没有办法缩短查询时间?当我将其称为
QueryBy.Name(state,“JOHN”,“SMITH”).FirstOrDefault().FirstName
时,需要90秒,而FirstName等个人信息都在当前使用的第一个也是唯一一个表中,因此目前没有使用联接或相关表。我的Scrum主管告诉我90秒没问题,但我还是想知道是否有办法缩短时间。@HenkHolterman,这不是一行真正的代码,只是一个快速查询,以便在控制台中查看是否有数据。虽然你说的完全正确,但这是错误的,但它也不是生产代码的一部分。@HenkHolterman,这不是一行真正的代码,如果我得到数据,只需在控制台中快速查询即可。虽然您完全正确,但它是错误的,但它也不是生产代码的一部分。
namespace Company.Domain.Application.Models
{
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
[Table("TABLE", Schema = "SCHEMA")]
public class PRN_Provider
{
[Key]
public int ProvID { get; set; }
public PRN_ServLocation PRN_ServLocation { get; set; }
[Display(Name = "First Name")]
[StringLength(100)]
public string FirstName { get; set; }
[Display(Name = "Middle Name")]
[StringLength(100)]
public string MiddleName { get; set; }
[Display(Name = "Last Name")]
[StringLength(100)]
public string LastName { get; set; }
//... more of the same structure for fields
}
}