【问题标题】:Using SubSonic Query to on multiple tables在多个表上使用 SubSonic Query
【发布时间】:2010-10-26 04:12:30
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

    你需要加入他们,就像你在 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 多表连接的一大缺点是,如果您在两个表中都有相同名称的列,则会遇到麻烦。

    【讨论】:

    • 我可能看起来很愚蠢,请问什么是 DB,它住在哪里?
    • 请告诉我如何获取数据库对象。我也在亚音速项目的页面上看到过它,但我无法访问它。
    • 数据库在 SubSonic 2.1+ 中。一旦你有了它,你也可以执行“new SubSonic.Select()”来达到相同的最终结果。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-17
    • 1970-01-01
    • 2012-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多