J'ai 3 tables :
Dealerships
------------
ID, Name, Website
Locations
------------
ID, DealershipID, Address, Ect.
Contacts
------------
ID, LocationID, Name, Ect.
La relation montre donc que nous avons des concessionnaires qui ont plusieurs sites (exemple : Weed Chevrolet of PA, Weed Chevrolet of NJ) et que chaque site a ses propres contacts (exemple : Managers du site PA, Managers du site NJ). J'ai besoin de joindre les 3 tables ensemble. Voici ce que j'ai :
var results = from d in entities.dealerships
join l in entities.locations on d.ID equals l.DealershipID
join c in entities.contacts on l.ID equals c.LocationID
select new
{
Name = d.Name,
Website = d.Website,
Address = l.Address + ", " + l.City + ", " + l.State + " " + l.Zip,
Contact = c.FirstName + " " + c.LastName,
WorkPhone = c.WorkPhone,
CellPhone = c.CellPhone,
HomePhone = c.HomePhone,
Email = c.Email,
AltEmail = c.AltEmail,
Sells = l.Sells
}
Quand j'essaie de lier résultats à une BindingSource, puis à un DataGridView, je reçois l'erreur suivante :
Unable to cast the type 'System.Nullable`1' to type 'System.Object'.
LINQ to Entities only supports casting Entity Data Model primitive types.
Qu'est-ce que ça peut être ? Je suis novice en matière d'instructions JOIN dans LINQ, donc je suis sûr que je fais quelque chose de mal.
EDIT : Il y a des données dans la base de données donc les résultats ne devraient pas être nuls, juste pour clarifier.