背景:
给定以下两个实体通过一对一的关系连接:
public partial class Parent
{
public long Id { get; set; }
public string Email { get; set; }
public virtual Details Details{ get; set; }
}
public partial class Details
{
public long Id { get; set; }
public long ParentId{ get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public DateTime Dob { get; set; }
public virtual Parent Parent { get; set;}
}
并具有以下Query
模型:
public class Query
{
public string Email { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public DateTime? Dob { get; set; }
}
问题
如何将Query
asIQueryable
应用于Parent
(或Details
)实体?
基于我的用例的注释:
Query
类不能有两个子类Parent
和Details
(应该展平)Parent
DB SQL 查询应该获取与and中的两个条件都匹配的结果Details
(如果条件失败以获取详细信息,则 parent 不应该出现在结果中)。- 模型中可能有很长的可选字段列表
Query
。这意味着数据库查询应该是动态且足够智能的,以知道如何构建查询并知道中的每个字段Query
属于哪个实体Parent
或Details
(即我不想要一个解决方案,我添加条件来检查orDob
中是否存在Query
不是)
用例:
我正在使用HotChocolate框架来集成 GraphQL,它使用表达式树来构建查询。这里提到了我要解决的问题
您的支持和建议将不胜感激!