La reutilización de conjuntos de datos en .NET
-
22-09-2019 - |
Pregunta
¿Es una buena idea para su reutilización en un conjunto de datos .NET? Lo que quiero decir es ... Tengo el siguiente código que las espirales de un gridview
For Each row in GridView
ds = New DataSet
ds.ReadXML(GetStream(row.Field))
... export the dataset
Next
Lo que estoy haciendo en el bucle es la creación de una nueva instancia del conjunto de datos. ¿No puedo llamar ds.Clear () y luego volver a utilizarlo a través de la ds.ReadXML ()?
Solución
La semántica es diferente: DataSet.Clear
borra todos los datos (filas), pero mantiene el esquema (tablas y relaciones).
En su muestra, parece que las tablas se crean a partir del método ReadXml (que se puede leer el esquema, así como los datos).
DataSet.Clear
probablemente funcionaría todo el tiempo que esté seguro de todos los documentos XML tienen el mismo esquema, pero utilizando New
es más robusto y expresa su intención mejor.
Sin embargo, si usted leía datos sólo, como en el siguiente ejemplo, DataSet.Clear
podría ser una mejor elección, ya que evita que la generación repetidamente el esquema.
ds = New DataSet
... code to create the schema (Tables, Columns, Relations)
For Each row in GridView
ds.ReadXML(GetStream(row.Field), XmlReadMode.IgnoreSchema)
... export the dataset
ds.Clear
Next
Otros consejos
Usted pesa reutilización con otras consideraciones de rendimiento. En términos generales no hago optimizaciones de este tipo hasta que se vuelven necesarias. Y sólo si tengo los números para demostrar que se necesita.
Usted puede ser capaz de hacer eso, pero la creación de objetos es tan barato y no tiene riesgo de efectos secundarios, no hay ninguna razón para no crear el nuevo objeto.