LINQ to SQL, jointure avec une valeur potentiellement null
Bonjour,
J'ai un petit problème avec linq2sql ( bien que je n'arrive pas a faire la même chose en SQL ), je voudrais en faite faire une jointure avec une autre table sauf que la valeur de cette autre table peut être présente ou pas.
Pour être concret j'ai 2 tables, une table contenant des voiture et l'autre des traductions dans cette table voiture, j'ai entre autre un champ Pollution contenant un uniqueidentifier pouvant etre null et la table de traduction contiens ( ou pas dépendant si l’utilisateur a ajouter du contenu pour ce champ ) une traduction, une langue et un uniqueidentifier identique a celui du champs Pollution de la table voiture (FieldID).
j'ai donc actuellement cette query linq avec d'autre jointures mais qui fonctionne parfaitement, mais je ne sais pas comment rajouter ce lien avec ce champ pollution, lorsque j’essaye la query ne me renvoit plus rien :(
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
|
var query = (from c in context.Cars
join co in context.CarTranslations on c.Color equals co.FieldID
join f in context.CarTranslations on c.Finishes equals f.FieldID
join o in context.CarTranslations on c.Options equals o.FieldID
join cMainModel in context.CarModels on c.Model equals cMainModel.ID
join tMainModel in context.Translations on cMainModel.Name equals tMainModel.ItemID
join cModel in context.CarModels on c.ModelSpecification equals cModel.ID
join tModel in context.Translations on cModel.Name equals tModel.ItemID
where c.DealerID == dealerID && co.ISO == ISO && f.ISO == ISO && o.ISO == ISO && tMainModel.Language == ISO && tModel.Language == ISO
orderby c.OrderID
select new CarTranslated
{
ID = c.ID,
Transmision = c.Transmission,
Fuel = c.Fuel,
Model = tMainModel.Term,
Km = c.Km,
Price = c.Price,
ListPrice = c.ListPrice,
CustomPicture = c.CustomPicture,
Advantage = c.Advantage,
Type = c.Type,
ModelSpecification = tModel.Term,
Finishes = f.Term,
Color = co.Term,
AvailableDate = c.AvailableDate,
Options = o.Term.Split(new[] { "\n" }, StringSplitOptions.None),
Published = c.Published,
OrderID = c.OrderID,
ModelID = c.Model,
ContactType = c.ContactType,
ContactUrl = c.ContactUrl |
VOici le schema de la DB
http://img713.imageshack.us/img713/6803/rr5.png
D'avance merci de m'aider ;-)