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

在VB.net中使用Linq编写连接查询,第1张

概述我试图将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.Anc 我试图将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 = @AncillaryCompanyIDAND (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)))
总结

以上是内存溢出为你收集整理的在VB.net中使用Linq编写连接查询全部内容,希望文章能够帮你解决在VB.net中使用Linq编写连接查询所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1242051.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-06
下一篇2022-06-06

发表评论

登录后才能评论

评论列表(0条)

    保存