Étant donné les tableaux suivants, je voudrais retourner le texte localisé pour la culture donnée ou le texte pour la culture par défaut où aucune ligne n'existe pour la culture donnée.Linq to Sql requête de localisation
diagram http://lh4.ggpht.com/_gjsCWAV_CZc/ShW6hC-eozI/AAAAAAAACbY/mXaBfiZtBY8/s400/diagram.png
Donc, avec les données folowing
Ressources
ID Name
1 Donkey
2 Elephant
LocaleStrings
ID CultureID ResID LocaleText
1 1 1 Donkey
2 1 2 Elephant
3 2 1 baudet
I'D comme être en mesure de retourner les éléments suivants pour la culture française
baudet
elephant
J'ai essayé différentes requêtes basées autour GAUCHE REJOINT échantillons que j'ai vu mais je suis coincé.
var ct = from r in db.Resources
join lt in db.LocaleStrings
on r.ID equals lt.ResID into res
from x in res.DefaultIfEmpty()
select new
{
CultureID = x.CultureID,
LocaleText = x.LocaleText,
ResID = x.ResID
};
var text =
from c in db.Cultures
join t in ct
on c.ID equals t.CultureID into cults
from x in cults.DefaultIfEmpty()
select x;
Vous devez vraiment faire une jointure croisée pour correspondre à toutes les cultures avec toutes les ressources. La jointure gauche ici correspond au français à l'une des ressources (baudet), donc la jointure n'est pas techniquement vide. – samiz