当前位置: 代码迷 >> ASP.NET >> linq中如何实现多条件关联的左连接?
  详细解决方案

linq中如何实现多条件关联的左连接?

热度:8016   发布时间:2013-02-25 00:00:00.0
【求助】linq中怎么实现多条件关联的左连接???
C# code
var data = from c in db.T_COURSE                       join u in db.T_USER_COURSE_RECORD                       on new { COURSE_ID=c.COURSE_ID, USER_ID=userId }                        equals new { COURSE_ID=u.COURSE_ID,USER_ID=u.USER_ID }                       into x                       from cx in x.DefaultIfEmpty()                       select new                       {                           c.COURSE_NAME,                           cx.COURSE_ID,                           cx.USER_COURSE_ID,                           cx.USER_ID,                           SCORE = cx.SCORE == -1 ? "未完成" : (cx.SCORE == null ? "未完成" : cx.SCORE.ToString())                       };


上面的userId是传入的参数,报错了说我join其中一个表达式的类型不正确。。。。

 对应sql语句:
SELECT * FROM T_COURSE a left join T_USER_COURSE_RECORD tucr ON a.COURSE_ID=tucr.COURSE_ID
and tucr.[USER_ID]=@userId

哪里有问题??希望高手帮忙解答~谢谢

------解决方案--------------------------------------------------------
on new { COURSE_ID=c.COURSE_ID, USER_ID=userId } 
equals new { COURSE_ID=u.COURSE_ID,USER_ID=u.USER_ID }
你应该确保组合键对应值的返回类型是一致的

int 对 int?就会产生错误
  相关解决方案