倒序查询
我们在做项目的时候会经常遇到数据的查询,数据的查询可以顺着查也可以倒着查询,刚开始的我是不知道原来查询是可以倒着查的,一直都是顺着查要是查询不了就改表之间的联系,修改数据库的数据、改表。后来我才知道原来查询也是可以倒着查的。
倒着查最起码不用我老是去修改数据库可以节省改表、改数据库的时间。
下面举例简单的介绍:
这是表之间的关系图。顺着查就是连接A表根据A表里面的B表ID查询B表里面的数据,根据B表里面的C表ID查询出C表里面的数据。这是顺着查的逻辑。
现在我要倒序的查询,那就是我要连接C表然后查询出A表里面的数据,连接C表根据C表ID在B表里面查询出B表数据,根据B表ID在A表里面查询出A表数据。
查询的方法的代码为
连接C表 tb开头的是自己定义的。In 在的意思 myModels 我的模型 S_Voiture
C表
var listZhengZhao = (from tbVoiture in myModels.S_Voiture //C表
连接B表根据C表的ID在B表里面查询数据
C表的ID等于B表里C表ID
join tbClasses in myModels.B_Classes on tbVoiture.VoitureID
equals tbClasses.VoitureID//B表
连接A表根据B表ID在A表里面查询出数据
B表的ID等于A表里B表ID
join tbPracticalClass in myModels.S_PracticalClass on tbClasses.ClassesID equals tbPracticalClass.ClassesID//A表
select new ZhengZhaoVo
{
需要查询的字段,字段1
字段2
字段3
字段4
}).Single();
Single() 只能查询出一条数据
ToList() 查询多条数据
return Json(listZhengZhao, JsonRequestBehavior.AllowGet);
return 返回值
你刚开始做倒序查询可能有点不懂,其实它就跟顺着查询差不多一样的,多做就都了。
数据也是能查询出来的,不过我发现好像不是所有的表之间的关系都能倒查的,有些表的关系倒查是查不出数据的,具体是怎么样的表关系是不能倒查的我就不知道了。