J'utilise d'abord le code-cadre d'entité. Je veux interroger à partir de la base de données contre des objets de liste. Cela fonctionne bien avec contient, mais comment puis-je le combiner avec StartSwith?
Ceci est mon code: P> Comment puis-je interroger contre tous les clients qui commence par A ou B? P> P> P> P>
3 Réponses :
Vous n'avez pas besoin de le combiner avec STARTSWITH, car si cela commence par A ou B, il contient évidemment un ou B. Il ne peut pas commencer par un ou B et ne contenir pas A ou B.
Donc, il suffit d'utiliser StartSwewith au lieu de contenir. P>
context.Customer.Where(c => c.StartsWith("A") || c.StartsWith("B")).ToList();
Je n'utilise pas string.Contains () mais list.Contains (). Votre solution fonctionne mais n'est pas dynamique. Par exemple. Requête contre A-K.
@Luckystrike - Je suggérerais que si vous avez de telles exigences, vous les inclut dans votre question. Sinon, vous venez de perdre tout le monde en rejetant des solutions qu'elles n'auraient pas pu être connues n'étaient pas ce que vous cherchiez.
Vous pouvez essayer de combiner les deux fonctions de cette façon:
Vous manquez un espace dans C dans context.customerwherewhere code> il devrait être de c dans
context.customer où code>
Cela devrait fonctionner en mémoire, mais je ne suis pas sûr que cela puisse être traduit en SQL par ef:
FYI MISE À JOUR Malheureusement avec EF CORE Ceci est évalué localement Avertissement: Microsoft.entityFrameworkcore.Query [20500] L'expression Linq 'Où {de texte de chaîne dans __texts_0 où [D] .Entry.startswith ([Texte] => Tout ()} 'n'a pas pu être traduit et sera évalué localement.
@Anthonyjohnston Cela peut être associé