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

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

2012-09-01 
【求助】linq中怎么实现多条件关联的左连接???C# codevar data from c in db.T_COURSEjoin u in db.T_USER

【求助】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?就会产生错误

热点排行