我具有以下表格结构
TableA-> TableB(带有tableA的FK)-> TableC(带有tableB的FK)
TableX-> TableY(带有tableX的FK和带有tableC的另一个FK)
我正在使用.NET核心EF支架和生成的类,TableC和TableX类之间没有直接关系
public partial class TableA
{
public TableA()
{
TableB = new HashSet<TableB>();
}
public int Id { get; set; }
public string Email { get; set; }
public ICollection<TableB> TableB { get; set; }
}
public partial class TableB
{
public TableB()
{
TableC = new HashSet<TableC>();
}
//Other prop
public Users tableA { get; set; }
public ICollection<TableC> tableC { get; set; }
}
public partial class TableC
{
public TableC()
{
tableY = new HashSet<TableY>();
}
//Other prop
public TableB tableB { get; set; }
public ICollection<TableY> tableY { get; set; }
}
public partial class TableY
{
//Other prop
public TableC tableC { get; set; }
public TableX tableX { get; set; }
}
public partial class TableX
{
public TableX()
{
tableX = new HashSet<TableX>();
}
//Other prop
public ICollection<TableX> tableX { get; set; }
}
我正在使用以下查询
_context.TableA.Where(x => x.Email == email.Trim())
.Include(i => i.TableB )
.ThenInclude(k => k.TableC)
.ThenInclude(l => l.TableY)
我从对象链中缺少TableX,正在寻找一个查询,该查询可以使TableX成为TableC的子对象,例如波纹管
TableA-> TableB-> TableC-> TableX-> TableY
当我使用以下查询
_context.TableA.Where(x => x.Email == email.Trim())
.Include(i => i.TableB )
.ThenInclude(k => k.TableC)
.ThenInclude(l => l.TableY.Select(g => g.tableX))
我遇到错误
ArgumentException:包含属性lambda表达式'p => p.Reservations'无效。该表达式应表示属性访问:“ t => t.MyProperty”。要定位在派生类型上声明的导航,请指定目标类型的显式键入的lambda参数,例如“(派生d)=> d.MyProperty”。