我有3个表:多左加入LINQ到实体
Dealerships
------------
ID, Name, Website
Locations
------------
ID, DealershipID, Address, Ect.
Contacts
------------
ID, LocationID, Name, Ect.
所以关系表明,我们有谁拥有多个位置的经销商(如:PA的杂草雪佛兰,NJ的杂草雪佛兰),然后每个地点都有自己的联系人(例如: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.
什么可以吗?我是LINQ中JOIN语句的新手,所以我确信我做错了什么。
编辑:有是数据库中的数据,因此结果不为空,只是为了澄清
我觉得这是你的地址或联络线 - 也许有一些是可空的,不能用'+'标志进行操作。试试看... – veljkoz 2010-10-04 23:00:05