none
Entity framework comportement étrange RRS feed

  • Discussion générale

  • Bonjour, ma question porte essentiellement sur la façon dont Entity Framework sauvegarde les données dans un contexte précis.

    Ma question: Quel est la façon exacte pour sauvegarder les données lorsqu'il y a des tables relationnels dans le model pour gérer les états update et insert?

    Mise en contexte: Je développe une application web avec les technologies suivantes : ASP.NET MVC4, C#, Entity Framework et Code First Migration. J'ai quelques pages web où mon model comporte des données en relation, par exemple:

      • Appel d'offres
      • Tags (catégories)
      • Documents
      • Photos

    Le modèle appel d'offres a plusieurs champs tel que le titre, le texte et il est relié aux tables tags, documents et photos. Donc, j'effectue une sauvegarde du model appel d'offres, ensuite de la table tags, s'il y a eu des changements, ensuite au tour de la table documents et finalement de la table photos. Le problème est qu'Entity Framework n'enregistre pas les modifications dans les tables relationnels à chaque fois!!! Le problème se reproduit quand l'usager modifie son appel d'offres pour ajouter un document ou une photo.

    Je vous partage une portion de mon code, exactement là où j'ai un problème:

    // Need to insert the model first before doing anything with documents or pictures to get primary key

    //Save automatically if (tenderService.InsertOrUpdate(model)) {

    //Save automatically tagService.UpdateRelational(model, Tag); } else { // Throw an error message to the user and send an email to the system administrator } // If user modify his tender and add new document we need to insert the document manualy // because the tender itself is an update! foreach (var item in model.Documents) { documentService.Insert(item); documentService.Save(); } // If user modify his tender and add new picture we need to insert the picture manualy // because the tender itself is an update! foreach (var item in model.Pictures) { pictureService.Insert(item); pictureService.Save(); }

    Deux façons de m'aider:

    1. M'expliquer exactement comment gérer la sauvegarde pour les models ayant des tables relationnels incluant les update, insert (primary key inconnu avant la sauvegarde)
    2. Trouver et m'expliquer dans mon code joins-ci haut pourquoi la sauvegarde n'est pas toujours fonctionnel

    Je vous remercie énormément de votre temps et votre aide à la résolution de m'on problème.

    Cordialement,

    David


    jeudi 1 août 2013 18:56

Toutes les réponses