我想使用亚音速从多个表中选择行。对于一个表,我可以使用Query对象,但我不知道如何添加多个表来进行查询。
答案 0 :(得分:3)
你需要加入他们,就像你在SQL中做的那样。 如果模式中有外键关系,则Subsonic足够聪明,可以直接计算连接:
DataSet DS = DB.Select().From<Table1>().InnerJoin<Table2>().ExecuteDataSet();
如果表之间没有FKI,则需要手动指定每个表中的列以创建连接:
DataSet DS = DB.Select().From<Table1>().InnerJoin(Table1.FKIColumn,Table2.IDColumn).ExecuteDataSet();
类似地,您可以创建左/右外连接等
记住你只能加入简单的FKI约束。例如,我发现没有简单的方法可以直接从SubSonic“在表1.FKI = Table2.ID和Table2.CreateDate&gt; Table1.CreateDate”上进行“INNER JOIN Table2”。
使用SubSonic多表连接的一个很大的缺点是,如果在两个表中都有相同名称的列,则会遇到麻烦。