我有一个ObjectA模型,其中有ObjectB的模型列表作为字段,但不是ObjectA模型表上的列。
我试图在ObjectA的端点上添加一个过滤器,它可以从数据库中返回我ObjectA,它在ObjectB上匹配一个字段。要过滤的字段名是" id "
我有一个返回IQueryable函数,其中我将返回一个连接这两个表的查询,并返回ObjectB中与传递的字段id匹配的字段"id"的记录。
连接表的查询是:var query = _context.ObjectA.Include(b => b.ObjectB).AsQueryable();
的代码,我有工作,但我认为可能有更好的方法来做到这一点,没有这些乱七八糟的代码。
if (filterModel.id != null)
{
query = query.Where(i => i.ObjectB.AsQueryable().Where(o => o.id.ToString().Equals(filterModel.id)).First().id.ToString() == filterModel.id
);
}
return query;
成功了
query = query.Where(i => i.ObjectB.Any(o => o.id.ToString().Equals(filterModel.id)));