Entity Framework type Double nom au sein d'une assemblée (6.1.0)
Je ne suis pas sûr de ce qui se passe, mais je reçois l'exception suivante lors d'une requête.
"Doublons de nom de type à l'intérieur d'une assemblée."
Je n'ai pas été capable de trouver une solution sur le web. J'avais résolu le problème en supprimant l'entité cadre de tous les projets dans les solutions et ré-installation à l'aide d'une pépite. Puis tout d'un coup, l'exception est de retour. J'ai vérifié mon schéma de table de plus de et plus et ne trouve rien de mal avec.
C'est la requête causant l'exception.
var BaseQuery = from Users in db.Users
join UserInstalls in db.UserTenantInstalls on Users.ID equals UserInstalls.UserID
join Installs in db.TenantInstalls on UserInstalls.TenantInstallID equals Installs.ID
where
Users.Username == Username
&& Users.Password == Password
&& Installs.Name == Install
select Users;
var Query = BaseQuery.Include("UserTenantInstalls.TenantInstall");
return Query.FirstOrDefault();
Comme je l'ai déjà mentionné, la même requête travaillait avant. Les données n'ont pas changé et que le code n'a pas changé.
- J'ai été en mesure de résoudre à nouveau en répétant les étapes que j'ai mentionné. Cela commence à devenir vraiment ennuyeux. J'espère que quelqu'un peut jeter un peu de lumière à ce qui se passe.
- Cela peut sembler une drôle de question, mais avez-vous des graines de votre base de données, ou peut-être changé la façon dont vous ensemencées il ? J'ai eu exactement le même problème que vous décrivez. Dans mon cas, j'ai newed un objet et de l'ajouter à un DbSet, newed un second objet de même type et de même ajouté de la même manière. Après la modification de ce newing à la fois des objets avant d'ajouter soit un permis de résoudre le problème.
- J'ai eu le même problème et pour moi cela a fonctionné après j'ai Nettoyé et Reconstruit solution. Vraiment étrange.
Vous devez vous connecter pour publier un commentaire.
Pour contourner ce problème, cela se produit uniquement si vous êtes en mode pas à pas en utilisant le débogueur. Si vous placez votre point d'arrêt, quelques lignes plus bas, à l'intérieur de votre source, le message d'erreur ne s'affichera pas.
Je n'ai pas désinstallé, ce qui me permet de continuer à travailler.
C'est un nouveau problème avec EF 6.1.0, et l'équipe EF est conscient du problème:
https://entityframework.codeplex.com/workitem/2228
Face à la même dans mon
WCF webservice
récemment. Juste nettoyer votre solution et de le reconstruire. Cela devrait résoudre le problème.Aucune de ce qui précède semble fonctionner pour moi cependant, dans le lien indiqué plus haut je n'ai fin de ce, qui a travaillé pour moi. Elle a été soumise par 'bunomonteiro'
Pour Corriger les "Doublons de nom de type à l'intérieur d'une assemblée"
J'ai eu le même problème. J'ai vérifié tous mes modèles/classes et je n'ai pas utilisé la duplication de noms pour les types.
J'ai supprimé les assemblées et regénérées à la le modèle et le contexte de l'objet à partir de la base de données et avaient toujours le même problème.
Une trace donné dans Visual Studio "les Enfants ne pouvait pas être évalué". La SOLUTION consiste à ajouter .ToList(); ou ToArray(); ou ToDictionary (), etc, à votre requête. etc.
par exemple.
var query = contexte.TableName.Où(x => x.nom =="CodeRealm").ToList();
PingBack - http://entityframework.codeplex.com/workitem/1898
bunomonteiro a écrit 18 Juil à 3:37 AM
Cela semble être résolu dans 6.1.3.
Voici comment j'en viens à cette conclusion:
J'fiable reproduit ce problème dans une version précédente (probablement 6.1.2). La reconstruction de ma solution n'a pas le fixer. L'exécution pas à pas avec des points d'arrêt avant et après ne reproduire le problème, tout en ayant des points d'arrêt que après le point de l'exception n'a pas provoquer une exception, comme indiqué ici dans d'autres réponses. [Résumé: il me semble avoir le même problème que tout le monde avec l'ancienne version de EF.]
Tenu de la même des points d'arrêt et pas de re-boot ou quelque chose comme ça, je viens d'installer la mise à jour d'Entity Framework. Cette ne résoudre le problème, où je pourrais étape librement avec des points d'arrêt avant et après le "code de problème", sans aucune exception levée plus.
Étant donné que la question est une sorte de hasard et de tempérament aux conditions, il est difficile de dire avec certitude que la mise à jour à EF traite spécifiquement de la question, mais c'est très bien.
Avec EF 6.1, je rencontre le même problème.
Dans mon cas, mon modèle a un auto-table de référence.
J'ai donc trouvé cela pourrait être causé par deux raisons suivantes.
Simplement en commentaire la ligne suivante dans le constructeur DBContext.
Doit être corriger "sélectionner des Utilisateurs;" segment de code :
Code de Correction :
La raison:
Champs de clé étrangère dans la classe sont présents et "Linq" ne sont pas en mesure de les éliminer lequel il y a l'erreur suivante:
(Bien sûr, ce problème de Défaut "entity framework" !)
Je suis une explication complète sur cette question,
Mais malheureusement, mon anglais n'est pas très bon et c'est vraiment dur pour moi d'expliquer la spécialisation, parce que je comprends que beaucoup de gens ne comprennent pas ce que je veux dire.
Je m'excuse pour cette.
S'avère pour nous, un redémarrage du serveur était tout ce qu'il était.
Moi aussi j'ai été confrontés aux mêmes genre de problème,
Je l'ai fixée par la conversion de l'ensemble de résultats de la Liste je.e
var registres = registerRepository.Tous les.ToList().Où(a=>un.AreaLatitude.Est égal à(0));
En convertissant le résultat ToList le problème est réglé pour effectuer une itération supplémentaire.
et a résolu le problème.
Avait même qui a pris des heures, hier, pour se débarrasser de. À l'aide de EF 6.1.0, erreur lors de l'exécution de requête linq to entities similaires comme ci-dessus.
Ma solution a été d'arrêter IIS Express, propre solution , désinstaller EF de tous les projets en solution, à proximité VS2012, supprimer tous les paquets de dossiers/fichiers dans la solution, puis redémarrez VS2012, ajouter EF 6.1.0 en cas de besoin, la compilation, l'erreur a disparu.