Перечислять «столбцы» в Entity Framework - PullRequest
1 голос
/ 04 января 2011

мы опускаем пальцы ног с помощью EF4 и врезаемся в стену.

У нас есть приложение, которое управляет данными участников, и основным требованием является создание писем с использованием Word mail merge.

В текущей реализации мы генерируем набор данных для требуемых записей и перечисляем его столбцы и строки, чтобы создать текстовый файл с разделителями табуляции, который Word может использовать для слияния. (Это работает очень хорошо, вкладка используется, так как в файле есть многострочные результаты, такие как FormattedAddressBlock).

В EF4 нет возможности преобразовать внутренне в набор данных (эта функция была удалена после бета-версии Orcas), поэтому вопрос:

Как мы перечисляем столбцы и строки LINQ или ObjectQuery, чтобы позволить нам создать текстовый файл.

Вот пример кода, который мы используем с таблицей данных.

    Using wmTextWriter As TextWriter = New StreamWriter(WordMergeDataFile)

        ' Write the header row to the merge data file.
        Dim wmOutput As New StringBuilder()
        For i As Integer = 0 To MergeData.Columns.Count - 1
            wmOutput.Append(MergeData.Columns(i).ColumnName & vbTab)
        Next
        wmOutput.Remove(wmOutput.Length - 1, 1) ' Remove the trailing Tab character.
        wmTextWriter.WriteLine(wmOutput.ToString)

        ' Loop through the datatable and write out the data rows to the work merge file.
        wmOutput = New StringBuilder()
        With MergeData
            For iRowNo As Integer = 0 To .Rows.Count - 1
                For iColNo As Integer = 0 To .Columns.Count - 1
                    wmOutput.Append(DOUBLEQUOTE & .Rows(iRowNo).Item(iColNo).ToString & DOUBLEQUOTE & vbTab)
                Next
                wmOutput.Remove(wmOutput.Length - 1, 1) ' Remove the trailing Tab character.
                wmTextWriter.WriteLine(wmOutput.ToString)
                wmOutput = New StringBuilder()
            Next
        End With

        wmOutput = Nothing
        wmTextWriter.Close()

    End Using

Любая помощь будет высоко ценится.

Марк Харби Ноттингем. UK

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...