CodeFirst EF4.3.1 - Update non réalisé en base
Bonsoir,
Je souhaite ajouter, supprimer et modifier un livre par le biais de 2 classes en utilisant CodeFirst (utilisation d'une base existante) :
Code:
1 2 3 4 5 6 7 8
| public class Livre
{
public int LivreID { get; set;}
public string Titre {get; set;}
public int AnneeEdition { get; set;}
public virtual Auteur AutLivre { get; set;}
} |
Code:
1 2 3 4 5
| public class Auteur
{
public int AuteurID {get; set;}
public string Nom { get; set; }
} |
L'ajout et la suppression d'un livre fonctionnent : la modification de l'auteur d'un livre n'est pas prise en compte dans la base. L'update se fait bien car le titre est modifié en base.
Je ne souhaite pas ajouter la FK dans la classe Livre (j'ai testé , l'Update fonctionne)
Dans la méthode OnModelCreating, j'ai configuré :
Code:
1 2 3 4
| modelBuilder.Entity<Livre>()
.HasRequired(p => p.AutLivre)
.WithMany()
.Map(x => x.MapKey("AuteurId")); |
AuteurId est le nom de la colonne FK de la table Livre.
Voici la dernière version de ma méthode Update: la propriété AutLivre a été chargée par la sélection d'un objet Auteur dans une combo.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| public void Update(Livre item)
{ using (BiblioContext db = new BiblioContext())
{ try
{ int idA = item.AutLivre.AuteurID;
var aut = db.Auteurs.Single(c => c.AuteurID == idA);
item.AutLivre = aut;
db.Entry(item).State = EntityState.Modified;
int n = db.SaveChanges();[/INDENT]
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
} |
Sur certains posts, on orientait vers cette configuration
Code:
1 2 3 4
| HasRequired(p => p.AutLivre)
.WithMany()
.IsIndependent()
.Map(x => x.MapKey(a => a.AuteurId, "AuteurId")); |
que je n'arrive pas à coder : je ne trouve pas cette méthode IsIndependant()!
Je commence à vraiment tourner en rond !
Auriez-vous des idées ?
Merci par avance