加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

在VB.net中使用Linq编写连接查询

发布时间:2020-12-17 07:22:32 所属栏目:百科 来源:网络整理
导读:我试图将SQL查询转换为vb中的 linq查询.但我在使语法正确方面遇到了一些麻烦. 原始查询 SELECT b.* FROM History_Table_B b INNER JOIN Employee e ON b.EmployeeId = e.EmployeeId INNER JOIN Company c ON e.CompanyId = c.CompanyId WHERE e.AncillaryId
我试图将SQL查询转换为vb中的 linq查询.但我在使语法正确方面遇到了一些麻烦.

原始查询

SELECT b.* 
FROM History_Table_B b 
INNER JOIN Employee e ON b.EmployeeId = e.EmployeeId 
INNER JOIN Company c ON e.CompanyId = c.CompanyId 
WHERE e.AncillaryId = @AncillaryPersonId 
AND c.AncillaryId = @AncillaryCompanyId
AND (b.EndDate is null OR b.EndDate >= convert(date,GetDate()))

我的Linq

Dim result = From b In context.H_Table_B
             Join employee In context.Employees
             On b.EmployeeId Equals (employee.EmployeeId)
             Join company In context.Companies
             On employee.CompanyId Equals (company.CompanyId) 
             Where employee.AncillaryId Equals(iPerId) 
             And company.AncillaryId Equals (iCompanyId) 
             And ((b.EndDate Is Nothing) Or (b.EndDate Equals(DateTime.Today)))

解决方法

在何处条件下,您不能使用Equals(Operator),例如Join LINQ query.这里Equals是一个对象类的方法,因此您可以使用’.’进行访问.例如employee.AncillaryId.Equals(iCompanyId)

另外还有一件事,在新线VB.net的Where条件中需要’_’.

例如

From b In context.H_Table_B
         Join employee In context.Employees
         On b.EmployeeId Equals (employee.EmployeeId)
         Join company In context.Companies
         On employee.CompanyId Equals (company.CompanyId) 
         Where employee.AncillaryId.Equals(iPerId) _ 
         And company.AncillaryId.Equals(iCompanyId) _
         And ((b.EndDate Is Nothing) Or (b.EndDate.Equals(DateTime.Today)))

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读