En ocasiones para optimizar consultas con datos calculados parciales, tenemos la opción de reutilizarlos mediante sub-expresiones en una sola iteración. En este ejemplo reutilizamos un cálculo (sencillo para el ejemplo), en lugar de realizar el sumatorio o la llamada a una función para cualquier cálculo…
Leer mástip
TIP: Hashtable to Object
Si bien existen librerias completas para asignar propiedades entre objetos, también es posible asignar de manera automática nuevos valores en pocas líneas de forma recursiva. En este caso se trata de asignar nuevos valores editados en un objeto que, por ejemplo, podremos utilizar para guardar los cambios dentro de Entity Framework. Un escenario común en un Grid:
using System.Data;
using System.Linq;
using System.Reflection;
...
Hashtable nuevosValores;
...
long idBuscado = long.Parse(nuevosValores["id"].ToString());
Coches n = miEntidad.Coches.Where(x => x.id == idBuscado).FirstOrDefault();
foreach (PropertyInfo p in n.GetType().GetProperties(BindingFlags.Instance | BindingFlags.Public))
{
// Puede tener propiedades el objecto de la entidad que no se utilizan
// por ejemplo la relación con otra tabla tambien aparece listada
if (nuevosValores.ContainsKey(p.Name))
p.SetValue(n, nuevosValores[p.Name]);
}
miEntidad.SaveChanges();
Un ejemplo sencillo del uso de la reflexión en los objectos.