Commande dans Linq to entities Plusieurs Colonnes
J'ai une table dans SQL Server qui possède les colonnes suivantes
- ID (Identité/Clé Primaire)
- DestinationID (clé Étrangère)
- Date (Champ Date)
- Temps (Time Champ)
- DayOfWeek (Char(3) sur le Terrain) c'est à dire "LUN","MAR", etc..
Je veux commander les données par Date et Heure, puis par DayOfWeek et le Temps. Donc tous les records avec les dates apparaissent en haut, et commandé par le temps, puis la DayOfWeek ordre par le temps.
J'ai essayé plusieurs façons mais juste ne peux pas obtenir ma tête autour de lui, j'ai le code suivant
var qry = ctx.DestinationTimings.Where(x => x.DestinationID == this.ID)
.OrderBy(t => t.Date).ThenBy(t => t.Date != null)
.ThenBy(t => SqlFunctions.CharIndex(t.DayOfWeek + ",", "MON,TUE,WED,THU,FRI,SAT,SUN"))
.ThenBy(t => t.Time);
- utiliser la méthode de sélection(msdn.microsoft.com/en-us/library/...)
- J'ai étudié la méthode de sélection, mais je pense qu'il aurait été un peu plus haut, j'ai eu un plan incliné, il serait quelque chose de simple
SqlFunctions.CharIndex
Retourne la position de la valeur trouvée dans une autre expression. msdn.microsoft.com/en-us/library/...
Vous devez vous connecter pour publier un commentaire.
Si
Date
est nullable vous pourriez faire quelque chose comme ceci: