Catégories
.Net C#

Entity Framework Mémo

Debugger les requêtes générées

En ASP.Net il est possible de tracer les requêtes générées par EF6:

        using (var ctxt = new ApplicationDbContext())
        {
            ctxt.Database.Log = message => Trace.WriteLine(message);
         ... le code manipulant le contexte ici sera loggé
        }      
Logs dans la fenêtre Output d’un update fait par Entity Framework

EF Data Validations

Il y a au moins plusieurs façon de valider les données en Entity Framework:

  • Data Annotations : attributs à ajouter aux modèles
  • IValidatableObject : Interface nous permettant d’implémenter nos propres checks
  • ValidateEntity : une methode de DbContext
  • DbUpdateException : Exceptions levées par EF

lire l’article source & sur EntityException

Clé Primaire

Pour ajouter une entité dans une table ayant une clé Primaire non auto-incrémentée comme par exemple lorsqu’on prend un timestamp comme ID, lors de la conception en mode Code First, ne pas oublier la DataAnnotation suivante:

[Key, DatabaseGenerated(DatabaseGeneratedOption.None)]

Sinon EF tentera d’insérer une entité en générant automatiquement la clé primaire nulle coté BDD
lire pour .Net Core