是否有人知道使用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,如果我无法找到像左连接一样基本的东西,可能会回到原点。
答案 0 :(得分:2)
获取各个部门的集合,每个部门都包含一系列部门,这将是理想的
SubSonic为您做到这一点(如果您在数据库中正确设置关系),只需选择所有Departments
:
var depts = Model.Department.All();
名为depts
的{{1}}每个项目都有一个属性,其中包含Divisions
个对象的集合。