左连接 Linq to Entity 的 Vb.net

2023-11-23

我无法弄清楚 linq to 实体查询语法。我的问题是,如果 Calls 表的值为 null,则出现注释,我想进行类似左连接的操作以从 Calls 表中获取“所有”行。

我尝试将其分组,但我无法找出正确的编写方式。

Dim TicketQuery As ObjectQuery = From c In EnData.Customer _
                                         Join t In EnData.Calls On t.CustomerID Equals c.CustomerID _
                                         Join Status In EnData.Lists On t.Status Equals Status.ListValue _
                                         Join Project In EnData.Lists On t.Project Equals Project.ListValue _
                                         Join Priorty In EnData.Lists On t.Priority Equals Priorty.ListValue _
                                         Where c.Status > -1 And t.Status > -1 And Status.ListType = 1 And Project.ListType = 3 And Priorty.ListType = 2 _
         Select New With {c.CustName, t.CallID, t.CallDate, t.CallTime, t.Description, Key .Status = Status.ListText, Key .Project = Project.ListText, t.DateModified, Key .Priority = Priorty.ListText}

我该如何解决这个问题?


类似问题:Linq to Sql:多个左外连接

微软文档:http://msdn.microsoft.com/en-us/library/bb918093.aspx#Y916

LINQ 示例来自:http://msdn.microsoft.com/en-us/vbasic/bb737909

左外连接 所谓的外连接可以用组连接来表示。左外连接类似于交叉连接,不同之处在于所有左侧元素至少包含一次,即使它们与任何右侧元素都不匹配。请注意 Vegetables 如何显示在输出中,即使它没有匹配的产品。

Public Sub Linq105()
    Dim categories() = {"Beverages", "Condiments", "Vegetables", "Dairy Products", "Seafood"}

Dim productList = GetProductList()

Dim query = From c In categories _
            Group Join p In productList On c Equals p.Category Into Group _
            From p In Group.DefaultIfEmpty() _
            Select Category = c, ProductName = If(p Is Nothing, "(No products)", p.ProductName)

For Each v In query
    Console.WriteLine(v.ProductName + ": " + v.Category)
Next
End Sub
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

左连接 Linq to Entity 的 Vb.net 的相关文章

随机推荐