我正在探索GraphQL开发,我正在探索通过EF Core生成什么样的SQL查询,我发现无论我的GraphQL查询只包含几个字段,EF Core都会为所有字段发送SQL Select.实体.
这是我现在使用的代码:
public class DoctorType : ObjectGraphType<Doctors>
{
public DoctorType()
{
Field(d => d.PrefixTitle);
Field(d => d.FName);
Field(d => d.MName);
Field(d => d.LName);
Field(d => d.SufixTitle);
Field(d => d.Image);
Field(d => d.EGN);
Field(d => d.Description);
Field(d => d.UID_Code);
}
}
public class Doctors : ApplicationUser
{
public string Image { get; set; }
[StringLength(50)]
public string UID_Code { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我正在使用的查询是
{
doctors{
fName
lName
}
}
Run Code Online (Sandbox Code Playgroud)
生成的SQL选择Doctor实体的所有字段.
有没有办法进一步优化EF Core生成的SQL查询?
我猜这种情况发生的原因是DoctorType继承ObjectGraphType<Doctors>了医生的某些Projection,而不是来自医生的一些Projection,但我想不出一个聪明的解决方法呢?
有什么建议?
编辑: …
c# entity-framework-core graphql asp.net-core graphql-dotnet