Subsonic3 LINQ 左外连接

发布于 2024-10-27 03:26:14 字数 736 浏览 6 评论 0 原文

我正在使用 Subsonic3,希望在两个表之间获得左外连接。这是经过测试的 SQL

SELECT a.* 
FROM vwVendor a
LEFT OUTER JOIN dbo.pubvenmap b
on a.vend_no = b.vend_no
where b.vend_no is null

,我陷入了

Dim vendors = From v In vwVendor.All()
Join m in pubvenmap.All() On v.vend_no Equals m.vend_no

更新 我也尝试了以下

Dim vendors = New SubSonic.Query.Select(SubSonic.Query.Aggregate.GroupBy("vend_no")).From(Of vwVendor).LeftOuterJoin(Of mac_pubvenmap)().ExecuteTypedList(Of vwVendor)()

但出现错误

类型的第一次机会异常 '系统.InvalidOperationException' 发生在 SubSonic.Core.dll

我正在使用 Visual Studio 2010 和 .NET 4.0...这可能是问题所在吗?

I am using Subsonic3 and would like to get a Left Outer Join between two tables. Here is the tested SQL

SELECT a.* 
FROM vwVendor a
LEFT OUTER JOIN dbo.pubvenmap b
on a.vend_no = b.vend_no
where b.vend_no is null

I am stuck at

Dim vendors = From v In vwVendor.All()
Join m in pubvenmap.All() On v.vend_no Equals m.vend_no

UPDATED
I also tried the following

Dim vendors = New SubSonic.Query.Select(SubSonic.Query.Aggregate.GroupBy("vend_no")).From(Of vwVendor).LeftOuterJoin(Of mac_pubvenmap)().ExecuteTypedList(Of vwVendor)()

but get the error

A first chance exception of type
'System.InvalidOperationException'
occurred in SubSonic.Core.dll

I am using Visual Studio 2010 and .NET 4.0...could this be the problem?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

我爱人 2024-11-03 03:26:14

如果 Albin 发布的 LINQ 表达式给您带来麻烦(SubSonic 的 LINQ 提供程序不如 Linq2Sql 或实体框架的完整),请注意您可以使用 SubSonic 的流畅查询对象 还可以执行左外连接:

SubSonic.SqlQuery query = new NorthwindDB.Select
  .From<Customer>()
  .LeftOuterJoin<Order>();
  query.Aggregates  = new List<Aggregate> { 
    new Aggregate(CustomerTable.CustomerNameColumn, AggregateFunction.GroupBy) };

If the LINQ expression Albin posted gives you trouble (SubSonic's LINQ provider is not as complete as Linq2Sql or Entity Framework's), be aware that you can use SubSonic's fluent query objects to also perform a Left Outer Join:

SubSonic.SqlQuery query = new NorthwindDB.Select
  .From<Customer>()
  .LeftOuterJoin<Order>();
  query.Aggregates  = new List<Aggregate> { 
    new Aggregate(CustomerTable.CustomerNameColumn, AggregateFunction.GroupBy) };
美人如玉 2024-11-03 03:26:14

LINQ 101 示例中举例说明了所有常见的 LINQ 构造。具体来说,在本例中为左外连接

如果我的生锈的 VB 正确的话,你的代码将是这样的。

Dim vendors = From v In vwVendor.All() _
            Group Join m in pubvenmap.All() On v.vend_no Equals m.vend_no Into Group _
            From m In Group.DefaultIfEmpty() _
            Select v

All common LINQ constructs are examplified at LINQ 101 Samples. Specifically in this case Left Outer Join.

If I got my rusty VB right your code will be like this.

Dim vendors = From v In vwVendor.All() _
            Group Join m in pubvenmap.All() On v.vend_no Equals m.vend_no Into Group _
            From m In Group.DefaultIfEmpty() _
            Select v
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文