Проблема Entity Framework с возвратом и манипуляцией анонимного типа - PullRequest
0 голосов
/ 29 июля 2011

так что я работаю с платформой сущностей, раньше я писал функцию с ado.net, которая выбирает два значения и позже возвращает таблицу данных, для которой я сделал некоторые манипуляции. код ниже

Protected Sub ddlFieldMappingProfile_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ddlFieldMappingProfile.SelectedIndexChanged
        If ddlFieldMappingProfile.SelectedValue >= 0 Then
            btnImportData.Enabled = True
        End If
        If ddlFieldMappingProfile.SelectedValue <= 0 Then Return

        Dim lstHeaders As List(Of String)
        Dim dtMapping As New DataTable()

        Dim intCount As Integer = 0
        Try

            Using com As New Common
                With com
                     dtMapping = .getProfileFields(Convert.ToInt32(ddlFieldMappingProfile.SelectedValue))
                    IEMapping = .getProfileFields(Convert.ToInt32(ddlFieldMappingProfile.SelectedValue))
                    lstHeaders = .FileHeaders(FileUpl.FiletoRead, FileUpl.Delimiter)
                End With
            End Using

            dtMapping.Columns.Add("MatchIndex")

            For Each row As DataRow In dtMapping.Rows
                For intCount = 0 To lstHeaders.Count() - 1
                    If lstHeaders(intCount) = row.Item("Dump_FieldName") Then
                        row.Item("MatchIndex") = intCount
                        Exit For
                    Else
                        row.Item("MatchIndex") = -1
                    End If
                Next
            Next
            gdvFieldData.DataSource = dtMapping
            gdvFieldData.DataBind()
            gdvFieldData.Visible = True

        Catch ex As Exception
            Throw ex
        Finally
            dtMapping.Dispose()
            lstHeaders = Nothing
        End Try
    End Sub
But now that I am using entity frame work I have written the LINQ query like 

Dim Context As New ICOM_Model.IcomsEntities()
        Dim query = From F In Context.Incentive_Prepaid_FieldMapping Where F.Profile_ID = Profile_ID
                    Select New With {.Activations_FieldName = F.Activations_FieldName, .Dump_FieldName = F.Dump_FieldName}

Анонимный тип. Пожалуйста, помогите мне, что будет тип возвращаемого значения и как я собираюсь манипулировать в коде для ddlFieldMappingProfile_SelectedIndexChanged

1 Ответ

0 голосов
/ 29 июля 2011

В вашем коде тип возврата будет анонимным с двумя свойствами "Activations_FieldName и Dump_FieldName", и вы можете получить доступ к этим значениям с помощью объекта "query".

вы можете создать класс со свойствами, которые вы выбираете по сущности, и заполнить этот объект класса.

class ABC{
string Activations_FieldName{get;set;}
string Dump_FieldName{get;set;}
}

Dim Context As New ICOM_Model.IcomsEntities()
        List<ABC> query = From F In Context.Incentive_Prepaid_FieldMapping Where F.Profile_ID = Profile_ID
                    Select New ABC With {.Activations_FieldName = F.Activations_FieldName, .Dump_FieldName = F.Dump_FieldName}

Теперь вы можете использовать этот объект класса в своем коде. надеюсь, это поможет.

...