Cómo lidiar con una falla en System.Data.DataTableExtensions.CopyToDataTable ()

Hola chicos, me he encontrado con algo que quizás sea una falla en el método de extensión .CopyToDataTable.

Este método lo utiliza Importar (en VB.NET) System.Data.DataTableExtensions y luego llamar al método contra un IEnumerable. Haría esto si desea filtrar una tabla de datos usando LINQ y luego restaurar la tabla de datos al final.

es decir

Imports System.Data.DataRowExtensions
    Imports System.Data.DataTableExtensions

    Public Class SomeClass
            Private Shared Function GetData() As DataTable
                Dim Data As DataTable

                Data = LegacyADO.NETDBCall


                Data = Data.AsEnumerable.Where(Function(dr) dr.Field(Of Integer)("SomeField") = 5).CopyToDataTable()


                Return Data

            End Function
    End Class

En el ejemplo anterior, el filtrado "DONDE" podría no devolver resultados. Si esto sucede, CopyToDataTable genera una excepción porque no hay DataRows.

¿Por qué

El comportamiento correcto debe ser regresar, n una DataTable with Rows.Count = 0.

¿Alguien puede pensar en una solución limpia para esto, de tal manera que quien llame a CopyToDataTable no tenga que ser consciente de este problema?

System.Data.DataTableExtensions es una clase estática, por lo que no puedo anular el comportamiento ... ¿alguna idea? ¿Me he perdido algo?

aclamacione

ACTUALIZAR

He enviado esto como un problema aConecta. Todavía me gustaría algunas sugerencias, pero si está de acuerdo conmigo, puede votar el problema en Connect a través del enlace de arriba

aclamacione

Respuestas a la pregunta(4)

Su respuesta a la pregunta