1
私は私のデータベースに暗号化された電子メールアドレスを保存し、だから私のLINQクエリは、のセットを返しますこれはレイトバインドですか?
Dim Query = From c In DB.Something Select New With {.Email = DoDecrypt(c.Email)}
のようなものであるAspGrid
で暗号化されていない電子メールアドレスを表示するには、鉱山のDoDecrypt
機能を使用しますデバッグモードの電子メール...
Linq to datatable関数を使用した後、返される結果は、データベースで検出された結果です(暗号化されたものです)。
ここで何が問題になりますか? Linqクエリを変更するにはどうすればよいですか?
そして、ここでは
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
あなたが実際にクエリを解決する必要があり
(値がnullにすることはできません。パラメータ名:クエリー)ライン薄暗いCMDでのIDbCommand = DB.GetCommand(TryCast(クエリ、のIQueryable))として – OrElse
クエリはIEnumerableをされます今は解決されているので、IQueryableではありません。あなたがそれを変更した場合、それは動作するのですか? – mattytommo
タイプ 'System.Collections.Generic.List'1 .....のオブジェクトをキャストできません' System.Linq.IQueryable 'を入力します。 – OrElse