我们正在用EF4浸泡我们的脚趾并撞墙。
我们有一个管理会员数据的应用程序,核心要求是使用Word邮件合并生成信件。
在当前实现中,我们为所需记录生成数据集,并枚举其列和行,以创建Word可用于合并的制表符分隔文本文件。 (这非常有效,使用Tab作为文件中存在多行结果,例如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
非常感谢任何帮助。
马克哈比 诺丁汉。英国