Je viens de NHibernate et je suis assez confus au sujet de la gestion Entity Framework des entités liées.Entity Framework enregistrer encore et encore la même entité liée
J'ai un modèle appelé Post. Chaque poste a un compte d'entité linke, qui indique quel compte a créé le message.
Lorsque je crée un poste, j'utilise le code suivant:
var post = new Post();
post.Account = GetAccount();
db.Posts.Add(post);
db.SaveChanges();
Qu'est-ce que GetAccount() fait est d'obtenir le compte de l'utilisateur actuel de la base de données basée sur un cookie. Il met également ce cache en cache pour la requête en cours (asp.net) de sorte qu'il n'a pas besoin d'être récupéré plusieurs fois. Maintenant, cela entraîne l'insertion d'un nouveau compte (identique mais avec un nouvel ID) pour chaque publication que j'enregistre. J'ai implémenté Equals et GetHashCode for Account qui auraient suffi pour NHibernate, mais pas pour Entity Framework, n'est-ce pas?
Qu'est-ce qui me manque?
Est-ce que GetAccount utilise le même dbContext que celui qui enregistre le message? –
@feanz Ahh, c'est logique. Non, ils ne l'ont pas fait et maintenant ça marche quand ils le font. Postez une réponse et je la marquerai. –