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