将 c# linq 查询转换为 vb.net
Convert c# linq query to vb.net
我有一些 C# LINQ 代码,想将其转换为 vb.net。你能帮我吗?
var userSessionId= 25;
ProjectsPerUser = db.tbProjekt.Where(s => s.tbUserProjects.Any(x => x.UserId == userSessionId)).ToList();
它来自这个原始 sql 查询:
ProjectsPerUser = db.Database.SqlQuery(Of tbProjekt)("SELECT * FROM [16281468_general].[dbo].[tbProjekt] WHERE Id " _
& "IN (SELECT DISTINCT ProjectId FROM [16281468_general].[dbo].[tbUserProject] WHERE UserId = " & userSessionId & ")").ToList
现在我想将其转换为 vb.net,但我遇到了一些问题。
这是我目前的尝试:
上下文中的表:tbProject 和 tbUserProjects
Dim dabcon As New production_TextEntitesContext
Dim ProjectsPerUsers As New List(Of tbProjekt)
Dim userSessionId As Integer = 111
ProjectsPerUsers = dabcon.tbProjekt.Where(Function(s) s.tbUserProjects.Any(Function(x) x.UserId = userSessionId)).ToList()
但是,我得到了这个错误:
Late binding operations cannot be converted to expression tree
在线s.tbUserProjects.Any.
也许这样的事情会有所帮助。举个例子
Sub Main()
Dim projects As New List(Of Integer)
projects.Add(1)
projects.Add(2)
projects.Add(3)
Dim users As New Dictionary(Of String, Integer)
users.Add("john", 1)
users.Add("mary", 2)
Dim userName As String = "john"
Dim userProjects = From p In projects
Join u In users On p Equals u.Value
Where u.Key = userName
Select p, u.Key
For Each v In userProjects
Console.WriteLine("user: {0} project: {1}", v.Key, v.p)
Next
Console.ReadLine()
End Sub
假设您设置了导航属性,这也应该有效:
Dim userProjects=dabcon.tbUsers.Where(Function(u) u.Key=userName).Select(Function(u) u.Projects))
或查询语法:
Dim userProjects=from u in dabcon.tbUsers
where u.Key=userName
select u.Projects
我有一些 C# LINQ 代码,想将其转换为 vb.net。你能帮我吗?
var userSessionId= 25;
ProjectsPerUser = db.tbProjekt.Where(s => s.tbUserProjects.Any(x => x.UserId == userSessionId)).ToList();
它来自这个原始 sql 查询:
ProjectsPerUser = db.Database.SqlQuery(Of tbProjekt)("SELECT * FROM [16281468_general].[dbo].[tbProjekt] WHERE Id " _
& "IN (SELECT DISTINCT ProjectId FROM [16281468_general].[dbo].[tbUserProject] WHERE UserId = " & userSessionId & ")").ToList
现在我想将其转换为 vb.net,但我遇到了一些问题。
这是我目前的尝试:
上下文中的表:tbProject 和 tbUserProjects
Dim dabcon As New production_TextEntitesContext
Dim ProjectsPerUsers As New List(Of tbProjekt)
Dim userSessionId As Integer = 111
ProjectsPerUsers = dabcon.tbProjekt.Where(Function(s) s.tbUserProjects.Any(Function(x) x.UserId = userSessionId)).ToList()
但是,我得到了这个错误:
Late binding operations cannot be converted to expression tree
在线s.tbUserProjects.Any.
也许这样的事情会有所帮助。举个例子
Sub Main()
Dim projects As New List(Of Integer)
projects.Add(1)
projects.Add(2)
projects.Add(3)
Dim users As New Dictionary(Of String, Integer)
users.Add("john", 1)
users.Add("mary", 2)
Dim userName As String = "john"
Dim userProjects = From p In projects
Join u In users On p Equals u.Value
Where u.Key = userName
Select p, u.Key
For Each v In userProjects
Console.WriteLine("user: {0} project: {1}", v.Key, v.p)
Next
Console.ReadLine()
End Sub
假设您设置了导航属性,这也应该有效:
Dim userProjects=dabcon.tbUsers.Where(Function(u) u.Key=userName).Select(Function(u) u.Projects))
或查询语法:
Dim userProjects=from u in dabcon.tbUsers
where u.Key=userName
select u.Projects