10
votes

Cadre d'entité 4.1 LINQ contient et startswith

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: xxx

Comment puis-je interroger contre tous les clients qui commence par A ou B?


0 commentaires

3 Réponses :


1
votes

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(); 


2 commentaires

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.



0
votes

Vous pouvez essayer de combiner les deux fonctions de cette façon: xxx


1 commentaires

Vous manquez un espace dans C dans context.customerwherewhere il devrait être de c dans context.customer où



12
votes

Cela devrait fonctionner en mémoire, mais je ne suis pas sûr que cela puisse être traduit en SQL par ef: xxx


2 commentaires

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é