1

暗号化された電子メール アドレスをデータベースに保存し、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
4

1 に答える 1

3

実際にクエリを解決する必要があります。デフォルトでは遅延バインドされていますが、実際にクエリを解決したい場合は、 を呼び出すだけ.ToList()です。クエリを以下の括弧で囲み、最後に呼び出し.ToList()ました。これが正確なVB 構文であるかどうかはわかりませんが(ここでは C# の知識に基づいています)、プリンシパルは同じです。

Dim Query = (From c In DB.Something Select New With {.Email = DoDecrypt(c.Email)})
.ToList()
于 2012-04-17T18:42:15.003 に答える