使用SubSonic Query来处理多个表

时间:2009-05-14 12:45:14

标签: c# .net database subsonic data-access-layer

我想使用亚音速从多个表中选择行。对于一个表,我可以使用Query对象,但我不知道如何添加多个表来进行查询。

1 个答案:

答案 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多表连接的一个很大的缺点是,如果在两个表中都有相同名称的列,则会遇到麻烦。