Je construis un mot programme anagram qui utilise une base de données qui contient une table simple:Besoin d'aide à la formulation requête LINQ
Words
---------------------
varchar(15) alphagram
varchar(15) anagram
(other fields omitted for brevity)
Un Alphagram est les lettres d'un mot par ordre alphabétique. Par exemple, l'alphagram pour OVERFLOW serait EFLOORVW. Chaque Alphagram dans ma base de données a un ou plusieurs Anagrammes. Voici un exemple vidage de données de ma table:
Alphagram Anagram
EINORST NORITES
EINORST OESTRIN
EINORST ORIENTS
EINORST STONIER
ADEINRT ANTIRED
ADEINRT DETRAIN
ADEINRT TRAINED
Je suis en train de construire une requête LINQ qui renvoie une liste de Alphagrams ainsi que leurs anagrammes associés. Est-ce possible?
MISE À JOUR: Voici ma solution basée sur les suggestions ci-dessous! Merci a tous!
using (LexiconEntities ctx = new LexiconEntities())
{
var words = ctx.words;
var query =
from word in words
where word.alphagram == "AEINRST"
group word by word.alphagram into alphagramGroup
select new { Alphagram = alphagramGroup.Key, Anagrams = alphagramGroup };
foreach (var alphagramGroup in query)
{
Console.WriteLine("Alphagram: {0}", alphagramGroup.Alphagram);
foreach (var anagram in alphagramGroup.Anagrams)
{
Console.WriteLine("Anagram: {0}", anagram.word1);
}
}
}
voulez-vous dire linq à SQL? –
En fait, c'est une application Silverlight/RIA Services, donc je crois qu'il utilise Linq-to-Entities. Je suis un peu n00b avec ça. – eponymous23
J'ai un Entity Data Model dans ma solution qui a été généré à partir de ma table de base de données. Mon modèle contient une entité appelée "Word" qui contient les propriétés "Alphagram" et "Anagram" (entre autres). Je pensais que c'était peut-être possible de faire une sorte de requête Linq auto-jointe. – eponymous23