Entity Framework 4 Erreur: Impossible de mettre à jour l'entité EntitySet car elle possède une définition DefiningQuery
Ok, voici le scénario. J'ai 3 tables. On appelle aspnet_Users on appelait les Catégories et une table de liaison appelé User_Categories. aspnet_Users et les Catégories à la fois des clés primaires (id utilisateur et ID de respectivement). La table de liaison n'a que deux colonnes: code catégorie et nom d'utilisateur, et il y a des relations de clé étrangère à la configuration de chaque colonne ET j'ai une clé unique d'installation pour les deux colonnes sur User_Categories. Ce met en place plusieurs-à-plusieurs relations entre les aspnet_Users de la table et de la table Catégories. J'ai généré mon entités fichier edmx à partir de cette base de données de configuration, et tout semble parfait et travaille pour presque toutes les opérations.
Ce que je veux faire est d'ajouter une nouvelle catégorie à partir d'un formulaire (qui fonctionne perfecly par lui-même), et aussi, dans le même temps, associé à un utilisateur en particulier avec ce qui vient d'être soumis catégorie. Lorsque j'essaie de faire cela, j'obtiens le message d'erreur dans ma ligne d'objet. Voici le code que j'utilise pour essayer ce (ctx est mon entités contexte de l'objet):
public ActionResult Create(Category category, Guid userId)
{
aspnet_Users user = ctx.aspnet_Users.SingleOrDefault(x => x.UserId == userId);
ctx.Categories.AddObject(category);
user.Categories.Add(category);
ctx.SaveChanges();;
return RedirectToAction("Index");
}
Pourquoi ne pas ce travail?
source d'informationauteur Tyler
Vous devez vous connecter pour publier un commentaire.
J'assume la totalité du message d'exception est quelque chose de similaire à:
Cela va se produire si votre base de données de la table n'a pas de clé primaire.
Ajouter une clé primaire de ta table (à l'aide de SQL Server Management Studio ou de quoi que ce soit), et de mettre à jour votre
.edmx
modèle à partir de la base de données.Erreur: Impossible de mettre à jour l'EntitySet parce qu'il a un DefiningQuery
Deux fois j'ai eu cette erreur, deux fois j'ai cherché des réponses partout, et à la fin, mon mappages a été foiré ou de la base de données n'avait pas de clé primaire ou quelque chose. Je propose de le vérifier tous les...
Je rencontre le même problème, et je l'ai fixée par le lien suivant:
J'ai retirer la section de DefiningQuery.edmx basé sur le contenu de la 3ème lien. Et ensuite, tout fonctionne comme un charme.
Mettre une clé primaire composite sur la table de correspondance, ce sera de dire EF à les manipuler correctement.