我有很多两个表之间的多对多关系在我的数据库(MySQL的):让孩子们在LINQ数到实体查询
- 类别(ID,姓名,id_parent)
- 声音(ID,姓名)
一个类别可以具有1父类,所以一个类别可以有许多C承运。如果某个类别至少有一个孩子,则其中没有声音。我不允许将声音和儿童分类在一起。
因此,对于父类别,我想让所有可能有孩子的孩子可能有孩子(...),并且我想要以递归方式计算所有孩子的声音。
例:
猫 - >(CCat1 - > CCCat11(2个声音),CCat2(5个声音),CCat3 - > CCat31 - > CCCat311 - >(CCCCat3111(10个声音),CCCCat3111(1个声音) )
没有深厚的限制,这就是为什么我需要一个 “递归” 的方法来计算的声音。
- 猫有3个孩子。
- CCat1有1个小孩。
- CCat2没有孩子。
- CCat3有1个孩子,有1个孩子,有2个孩子。
Cat.nbSounds = 18
如果您从数据库中获取此信息,则应尝试创建存储过程。否则,您将不得不向客户端发送大量信息,使用存储过程只需发送最终数字。 – MrFox
@MrFox:如果您可以创建一个返回此数据的LINQ查询,那么您不会向客户端发送“大量信息”。 –
我有一种感觉,在这种情况下,单个LINQ查询不会削减它。我的第一个想法是编写一个递归方法来查找子类别并从它们返回计数...但是这反过来又是很多查询。 – Shaamaan