Linq 与亚音速3.0的外部连接

Linq 与亚音速3.0的外部连接,linq,subsonic,subsonic3,Linq,Subsonic,Subsonic3,有人知道用亚音速3.0做左外连接的方法吗,或者其他方法来解决这个问题?我试图实现的是,我有一个部门表和另一个部门表。一个部门可以有多个部门。我需要显示一个包含部门的部门列表。得到一个包含部门集合的部门集合是理想的,但我也会使用一个扁平的结果表 使用LINQ语法似乎有问题(虽然我对LINQ不熟悉,但可能用错了),例如,这会引发ArgumentException错误: var allDepartments = from div in Division.All() join dept in D

有人知道用亚音速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;
所以我想我可以回到使用亚音速查询语法。但是,此代码生成内部联接而不是外部联接:

List<Department> allDepartments = new Select()
    .From<Department>()
    .LeftOuterJoin<Division>(DepartmentsTable.IdColumn, DivisionsTable.DepartmentIdColumn)
    .ExecuteTypedList<Department>();
列出所有部门=新建选择()
.From()
.LeftOuterJoin(DepartmentsTable.IdColumn、DivisionsTable.DepartmentIdColumn)
.ExecuteTypedList();
任何帮助都将不胜感激。我在亚音速3上运气不太好。我真的很喜欢使用亚音速2,如果我不能找到像左连接这样基本的东西,我可能会回到亚音速2

找回一个包含部门集合的部门集合将是理想的选择

亚音速可以为您这样做(如果您在数据库中正确设置了关系),只需选择所有
部门

var depts = Model.Department.All();

depts
的每个项目中都有一个名为
Divisions
的属性,它包含一组
Division
对象。

Nice。我认为可能是这样的,因为它是ActiveRecord的一个实现。我被呼叫部门返回的IQueryable弄糊涂了。现在说得通了,谢谢。