J'ai 3 tables:multiple gauche Rejoignez LINQ-à-entités
Dealerships
------------
ID, Name, Website
Locations
------------
ID, DealershipID, Address, Ect.
Contacts
------------
ID, LocationID, Name, Ect.
Ainsi, la relation montre que nous avons des concessionnaires qui ont de multiples endroits (exemple: mauvaises herbes Chevrolet PA, Chevrolet Weed de NJ), puis chaque emplacement a ses propres contacts (exemple: les gestionnaires de l'emplacement de l'AP, les gestionnaires de l'emplacement NJ). Je dois rejoindre les 3 tables ensemble. Voilà 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
}
Lorsque je tente de lier résultats à un 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.
Que peut-il être? Je suis nouveau à joindre des déclarations 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 de sorte que les résultats ne doivent pas être nul, juste pour clarifier
Je pense qu'il est votre adresse ou d'une ligne de contact - probablement une partie de celui-ci est annulable et ne peut pas fonctionner avec un signe '' +. Essayez ça ... – veljkoz