外部加入Subsonic 3.0

时间:2009-08-07 15:33:25

标签: linq subsonic subsonic3

是否有人知道使用SubSonic 3.0进行左外连接的方法或其他方法来解决此问题?我想要完成的是我有一个用于部门的表和另一个用于部门的表。一个部门可以有多个部门。我需要显示一个包含它所包含的部门的部门列表。回到一个部门的集合,每个部门包含一系列的部门将是理想的,但我也会采用扁平的结果表。

使用LINQ语法似乎被破坏了(虽然我是LINQ的新手并且可能使用它错了),例如这会引发ArgumentException错误:

var allDepartments = from div in Division.All()
    join dept in Department.All() on div.DepartmentId equals dept.Id into divdept
    select divdept;

所以我想我可以回退使用SubSonic查询语法。但是,此代码生成INNER JOIN而不是OUTER JOIN:

List<Department> allDepartments = new Select()
    .From<Department>()
    .LeftOuterJoin<Division>(DepartmentsTable.IdColumn, DivisionsTable.DepartmentIdColumn)
    .ExecuteTypedList<Department>();

任何帮助将不胜感激。我对SubSonic 3没有太多好运。我非常喜欢使用SubSonic 2,如果我无法找到像左连接一样基本的东西,可能会回到原点。

1 个答案:

答案 0 :(得分:2)

  

获取各个部门的集合,每个部门都包含一系列部门,这将是理想的

SubSonic为您做到这一点(如果您在数据库中正确设置关系),只需选择所有Departments

var depts = Model.Department.All();

名为depts的{​​{1}}每个项目都有一个属性,其中包含Divisions个对象的集合。