Herramientas de usuario

Herramientas del sitio


fw:othersnet:linq

¡Esta es una revisión vieja del documento!


LINQ

DLINQ

Podemos agregar reglas de validación a nivel de entidad, es decir, no sólo para las propiedades sino para la tabla en sí, y poder validar así datos que estén relacionados.

public partial class Order {
  public partial void OnValidate () {
    if (this.dataOrder > this.dataDelivery)
      throw ("La fecha de pedido es mayor que la de entrega!");
  } 
}

Al hacer una llamada al método SubmitChanges se llamarán a otros métodos según la acción realizada y donde podemos lanzar nuestras excepciones para que dicha acción no llegue a realizarse. Por ejemplo, para una clase Order estos serían de la siguiente forma:

public partial class NorthwindDataContext {
  partial void InsertOrder (Order instance) {
    this.ExecuteDynamicInsert(instance);
  }
  partial void UpdateOrder (Order instance) {
    this.ExecuteDynamicUpdate(instance);
  }
  partial void DeleteOrder (Order instance) {
    this.ExecuteDynamicDelete(instance);
  }
}

Pero podemos ir aún más lejos y hacer nuestras validaciones\comprobaciones en el método SubmitChanges de una clase propia que creemos:

public class MyNorthwindDataContext : NorthwindDataContext {
  public override void SubmitChanges (System.Data.Linq.ConfictMode failureMode) {
    ChangeSet changes = this.GetChangeSet();
    changes.AddedEntities ...
    base.SubmitChanges (failureMode);
  }
}
fw/othersnet/linq.1237713685.txt.gz · Última modificación: 2020/05/09 09:24 (editor externo)