У меня есть 3 таблицы:Multiple левый Присоединяйтесь LINQ к лицам
Dealerships
------------
ID, Name, Website
Locations
------------
ID, DealershipID, Address, Ect.
Contacts
------------
ID, LocationID, Name, Ect.
Таким образом, соотношение показывает, что у нас есть дилерские, которые имеют несколько мест (например: Weed Chevrolet ПА, Weed Шевроле Нью-Джерси), а затем каждое место имеет свои собственные контакты (пример: Менеджеры местоположения PA, Менеджеры местоположения NJ). Мне нужно присоединиться к 3 таблицам вместе. Это то, что у меня есть:
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
}
При попытке связать результаты в виде BindingSource, а затем в DataGridView я получаю следующее сообщение об ошибке:
Unable to cast the type 'System.Nullable`1' to type 'System.Object'.
LINQ to Entities only supports casting Entity Data Model primitive types.
Что это может быть? Я новичок в операторах JOIN в LINQ, поэтому я уверен, что делаю что-то неправильно.
EDIT: Существуют данные в базе данных, так что результаты не должны быть пустыми, просто для уточнения
Я думаю, что это ваш адрес или контактный линия - вероятно, некоторые из них обнуляемые и не могут работать с '' знак +. Попробуйте это ... – veljkoz