我将加密的电子邮件地址存储在我的数据库中并使用我的DoDecrypt
函数,在AspGrid中显示未加密的电子邮件地址
所以我的LINQ查询类似于
Dim Query = From c In DB.Something Select New With {.Email = DoDecrypt(c.Email)}
以调试模式返回一组电子邮件...
使用Linq to datatable函数后,返回的结果是数据库中找到的结果,这些结果是加密结果。
这里出了什么问题? 我该如何修改我的Linq查询?
这是Linq to datatable函数
Public Shared Function ToDataTable(DB As System.Data.Linq.DataContext, query As Object) As DataTable
If query Is Nothing Then
Throw New ArgumentNullException("query")
End If
Dim cmd As IDbCommand = DB.GetCommand(TryCast(query, IQueryable))
Dim adapter As New SqlDataAdapter()
adapter.SelectCommand = DirectCast(cmd, SqlCommand)
Dim dt As New DataTable("sd")
Try
cmd.Connection.Open()
adapter.FillSchema(dt, SchemaType.Source)
adapter.Fill(dt)
Finally
cmd.Connection.Close()
End Try
Return dt
End Function
答案 0 :(得分:3)
您需要实际解析查询,默认情况下它是后期绑定,但如果您确实想要解析查询,则只需调用.ToList()
即可。我刚刚在下面的方括号中包含您的查询,并在结尾处调用.ToList()
。不确定这是否是完全 VB语法(来自C#知识),但是主体仍然是相同的。
Dim Query = (From c In DB.Something Select New With {.Email = DoDecrypt(c.Email)})
.ToList()