Précédent   Forum des professionnels en informatique > Dotnet > Accès aux données > Linq
Linq Forum d'entraide sur la manipulation de données avec Linq
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/12/2011, 17h49   #1
Membre confirmé
 
Inscription : juillet 2004
Messages : 727
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 727
Points : 216
Points : 216
Par défaut Linq To Sql, trie sur une colonne text

Salut a tous
Je souhaite faire un trie dans ma requête Linq, sur un champs qui est en type "text" dans la base sql server. Mais j'ai un message d'erreur. Est-ce possible ?

Sinon dois-je transformer le résultat de ma requête linq en list, puis faire le tri ?

Citation:
Une expression order by ne peut contenir que des scalaires non constantes comparables par ordre par le serveur. L'expression de type 'Text' n'est pas comparable par ordre.
Merci
Oberown est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2011, 19h59   #2
Membre Expert
 
Avatar de GuruuMeditation
 
Homme Olivier Matis
Software Architect
Inscription : octobre 2010
Messages : 769
Détails du profil
Informations personnelles :
Nom : Homme Olivier Matis
Âge : 37
Localisation : Belgique

Informations professionnelles :
Activité : Software Architect
Secteur : Conseil

Informations forums :
Inscription : octobre 2010
Messages : 769
Points : 1 586
Points : 1 586
Envoyer un message via MSN à GuruuMeditation
Linq to SQL va traduire ta requête en requête SQL. Mais SQL server (Même DENALI) ne peut pas utiliser un champ TEXT (ou NTEXT, image,...) dans un orderby. D'ou l'erreur.

Il faut absolument que ce soit un champ text?
__________________
Microsoft MVP : Visual C#

MCPD - Windows Developer 4
MCPD - Web Developer 4
MCTS - Silverlight 4, Development

“If debugging is the process of removing bugs, then programming must be the process of putting them in.”
(Edsger W. Dijkstra)
GuruuMeditation est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2011, 14h36   #3
Modérateur
 
Avatar de h2s84
 
Homme Holty Samba SOW
Développeur .NET
Inscription : mars 2007
Messages : 2 393
Détails du profil
Informations personnelles :
Nom : Homme Holty Samba SOW
Âge : 27
Localisation : Sénégal

Informations professionnelles :
Activité : Développeur .NET
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mars 2007
Messages : 2 393
Points : 4 089
Points : 4 089
Envoyer un message via MSN à h2s84 Envoyer un message via Skype™ à h2s84
Pourquoi ne pas utiliser nvarchar(max) comme type de données au lieu de Text ?
__________________
Les FAQs sur les technologies .Net voir ici
Les cours et tutos sur les technologies .Net voir ici
Les critiques sur les livres parlant des technologies .Net voir ici
Pensez à la balise [CODE]
Pensez au tag si votre problème est résolu

While(!success) { TryAgain(); }
h2s84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2011, 14h46   #4
Membre confirmé
 
Inscription : juillet 2004
Messages : 727
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 727
Points : 216
Points : 216
Dans quel cas faut-il utiliser un text, et dans quel cas un nvarchar(max) ?
Oberown est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2011, 14h51   #5
Modérateur
 
Avatar de h2s84
 
Homme Holty Samba SOW
Développeur .NET
Inscription : mars 2007
Messages : 2 393
Détails du profil
Informations personnelles :
Nom : Homme Holty Samba SOW
Âge : 27
Localisation : Sénégal

Informations professionnelles :
Activité : Développeur .NET
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mars 2007
Messages : 2 393
Points : 4 089
Points : 4 089
Envoyer un message via MSN à h2s84 Envoyer un message via Skype™ à h2s84
Les deux permettent de stocker des chaines de caractères c'est évident.
Utiliser nvarchar ou varchar avec qui on peut appliquer un order by alors qu'avec un text ou ntext cela est impossible d'où ton erreur.
Bref tu veux utiliser du texte et vu que tu ne connais la longueur exacte alors je te conseille de mettre nvarchar(max).

Sinon ce lien t'aidera à mieux comprendre les différences.
__________________
Les FAQs sur les technologies .Net voir ici
Les cours et tutos sur les technologies .Net voir ici
Les critiques sur les livres parlant des technologies .Net voir ici
Pensez à la balise [CODE]
Pensez au tag si votre problème est résolu

While(!success) { TryAgain(); }
h2s84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h32.


 
 
 
 
Partenaires

Hébergement Web