首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

三个表的连接

2012-01-06 
求助:三个表的连接我写Silverlight程序,用到Linq。下面是我写的代码,但电脑提示问题,不知道如何解决(各字段

求助:三个表的连接
我写Silverlight程序,用到Linq。

下面是我写的代码,但电脑提示问题,不知道如何解决(各字段都是string),敬请各位高人指点,先谢谢了!

C# code
 var temp = from q1 in dc.MonitorData            join q2 in dc.EnqInfo on new { q1.EnqId, q1.DtuId } equals new { q2.EnqId, q2.DtuId }            join q3 in dc.Station on new { q1.StationID, q1.DtuId } equals new { q3.StationID, q3.DTUID }            select new            {                q1.DtuId,                q2.EnqName,                q3.Property             };


好像不能上传截图,第二个join语句,电脑提示错误:join 子句中其中一个表达式的类型不正确。对“Join”的调用中的类型推理失败。

[解决办法]
去 [Station] 表,把 [DTUID] 改成 DtuID,然后重新生成一下代码。这个结果确实让人泄气。

或者这样写也可以:

public class MyDto
{
public string str1 { get; set; }
public string str2 { get; set; }
}

var temp = from q1 in MonitorData
join q2 in EnqInfo on new MyDto { str1 = q1.EnqId, str2 = q1.DtuId } equals new MyDto { str1 = q2.EnqId, str2 = q2.DtuId }
join q3 in Station on new MyDto { str1 = q1.StationID, str2 = q1.DtuId } equals new MyDto { str1 = q3.StationID, str2 = q3.DTUID }
select new { q1.DtuId, q2.EnqName, q3.Property };

热点排行