【发布时间】:2010-10-26 04:12:30
【问题描述】:
我想使用亚音速从多个表中选择行。对于一个表,我可以使用 Query 对象,但我不知道如何添加多个表进行查询。
【问题讨论】:
标签: c# .net database subsonic data-access-layer
我想使用亚音速从多个表中选择行。对于一个表,我可以使用 Query 对象,但我不知道如何添加多个表进行查询。
【问题讨论】:
标签: c# .net database subsonic data-access-layer
你需要加入他们,就像你在 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 执行“Table1.FKI = Table2.ID 和 Table2.CreateDate>Table1.CreateDate 上的 INNER JOIN Table2”。
使用 SubSonic 多表连接的一大缺点是,如果您在两个表中都有相同名称的列,则会遇到麻烦。
【讨论】: