9
votes

Conversion de l'objet iquéryable à un autre objet?

Je n'ai aucune idée de ce que sont les mots-clés, voici un exemple de ce que je veux: xxx

userpo.getusers () retours Type IQuiseryable . Je voudrais convertir cela en iquéryable à je peux restreindre l'accès à certaines propriétés du domaine utilisateur .

Comment puis-je faire Ceci sans codage dur la traduction comme ça? Qu'en est-il des outils tels que MOWORAPPER ou ValueInjector, comment peut-il faire cela?

aussi, quelle est cette technique appelée?


0 commentaires

4 Réponses :


4
votes

Comtableapper est l'outil que vous voulez; Il fonctionne par réflexion et à moins que vous ne le disiez autrement, il créera des propriétés avec le même nom directement.

La cartographie automatique est la technique.


0 commentaires

13
votes

Vous devez coder la traduction ou vous devez d'abord le convertir en iEnumerable . IQueryable représente l'arborescence d'expression traduite à une exécution dans un fournisseur d'occasion - dans votre cas, je crois que ce sera un cadre d'entité. Vous ne pouvez utiliser aucun mappage automatique dans une telle requête car elle sera traduite en SQL qui ne comprendra pas vos méthodes .NET ou votre automapper. Les projections à des types personnalisées font partie de la requête et doivent être codées en papier. Vous pouvez créer une méthode d'extension personnalisée sur iquéryable et la réutiliser où vous avez besoin: xxx

maintenant, vous pouvez utiliser: xxx

en cas d'entité framework SimpleUser ne doit pas être une entité mappée.


1 commentaires

Le code "u => u nouveau SimpleSer" ne compile pas. Je pense que le second "u" doit être enlevé.



6
votes

à condition que SimpleUser soit assignable à l'utilisateur (l'utilisateur est une interface de base de base de SimpleUser), vous pouvez

 var users = simpleUsers.Cast<User>().AsQueryable();


0 commentaires

1
votes

Cette question a 9 ans, donc idk s'il existait alors mais pour que quiconque cherche maintenant, utiliser .Firstordefault () fonctionne si vous choisissez un seul utilisateur.


0 commentaires