Je travaille sur l'application MVC3, en utilisant Entity Framework 4.1. J'ai fait une requête LINQ et je l'ai renvoyée sous la forme IEnumerable<T>
. Mais, dans le contrôleur, je dois utiliser Include(other entity)
, comme dans ObjectSet
, donc je peux montrer d'autres valeurs d'entité (qui est associée à celle sur laquelle je fais une requête). J'ai essayé la distribution explicite de IEnumerable<T>
à ObjectSet<T>
, mais il jette une exception. Est-il possible que je peux obtenir ObjectSet
de IEnumerable
, ou d'inclure l'entité dans IEnumerable
?
Merci d'avance.IEnumerable <> to ObjectSet <>, raison: INCLUDE
Répondre
Si votre contexte est toujours en vie (si vous ne l'avez pas quitté l'utilisant) et si vous ne l'avez pas fait .ToList()
vous devriez être en mesure de jeter à ObjectQuery<T>
.
Une pratique plus sûre serait d'utiliser une méthode d'extension sur IQueryable<T>
qui vérifie si interrogeable est un ObjectQuery<T>
et si oui à des moulages ObjectQuery<T>
et renvoie le résultat .include() renvoie la requête sinon d'entrée.
Une fois que vous l'avez converti en IEnumerable, il est déconnecté de la source de données.
Vous devez inclure les entités associées dans la couche d'accès de la liste (DAL) alors qu'il s'agit toujours d'une requête IQueryable ou IObjectQuery, puis renvoyer le résultat complet sous la forme IEnumerable.
Sinon, vous allez faire un coup supplémentaire sur la BD.
Si
J'ai essayé, mais toujours des champs vides :( – dodjavola
Est-ce que vous voyez les entités étant peuplées avant de quitter le Dal, sont-elles perdues lors du transfert au contrôleur? – Slicksim
Lorsque j'utilise une requête directement sur ObjectSet, cela fonctionne même sans inclure, j'obtiens tous les champs mais quand j'utilise la requête sur la requête que j'ai mentionnée dans la dernière phrase, elle n'est pas perdue quand j'utilise la requête sur IEnumerable (suite à une requête) ... – dodjavola
- 1. Coulée IEnumerable <Derived> à IEnumerable <BaseClass>
- 2. Obtenez un IEnumerable <T> d'un IEnumerable <IEnumerable <T>>
- 3. IEnumerable <IEnumerable <T>> pour IEnumerable <T> LINQ
- 4. Comment puis-je réduire IEnumerable <IEnumerable <Foo>> à IEnumerable <Foo>?
- 5. Comment convertir un IEnumerable <IEnumerable <T>> en IEnumerable <T>
- 6. Conversion de IEnumerable <IEnumerable <string>> pour ICollection <T>
- 7. Reactive Extensions Sujet <IEnumerable <Obj>> à Objet <IEnumerable <AggregatedObj >>
- 8. Existe-t-il un moyen de convertir ObjectSet <table1> en ObjectSet <EntityObject>?
- 9. EntitySet <IEnumerable <T>> pour IEnumerable <T>
- 10. Comment sélectionner dans la liste <IEnumerable <ItemClass>> à IEnumerable <ItemClass>?
- 11. #include <graphic.h>
- 12. #include <cmath>
- 13. LINQ - Impossible de convertir implicitement le type 'IEnumerable <IEnumerable <.XElement>>' à 'IEnumerable <.XElement>'
- 14. IEnumerable <string> => chaîne unique []
- 15. Convertir IQueryable <IEnumerable <Entity>> pour IQueryable <Entity>
- 16. XML IEnumerable <T>
- 17. IEnumerable <T> question
- 18. Remplacer xml <include ... />
- 19. #include <malloc.h> - Xcode
- 20. #include <atlrx.h> erreur
- 21. IList <T>, IEnumerable <T> et ObservableCollection <T>
- 22. Co/Contravariance? Tuple <string, IEnumerable <string>> non satisfait Liste <string>
- 23. ObjectResult <Nullable <DateTime>> à IEnumerable <DateTime>?
- 24. Comment transformer un IObservable <IObservable <T>> en IObservable <IEnumerable <T>>?
- 25. Convertir IEnumerable <Dictionnaire <int, string>> Liste <Dictionnaire <int, string>>
- 26. Comment convertir IEnumerable <MySpecificEnumType> pour IEnumerable <Enum> générique WPF (C#)
- 27. Convertir datatable en IEnumerable <T> pour passer au résultat <T> (IEnumerable <T> data);
- 28. Deserialize <ArrayOf> dans XML to List <>
- 29. ObjectSet <T> .AddObject() vs EntityCollection <T> .Add()
- 30. Cast/Convert IEnumerable <T> à IEnumerable <U>?
En développant cela, vous pourriez revenir est-il ap raison articulaire que vous utilisez IEnumerable? Si vous avez renvoyé IQueryable à votre contrôleur, il peut utiliser IQueryable. Inclure –
Si j'utilise IQueryable, j'obtiens «L'entité ou le type complexe ne peut pas être construit dans une requête LINQ to Entities». – dodjavola
Voir la modification pour plus de détails. –