我通过在两个表上应用连接从表中获取数据但是我收到此错误:
Error 40 The type of one of the expressions in the join clause is incorrect. Type inference failed in the call to 'Join'. C:\Documents and Settings\Ashir\My Documents\OpenLearningSolutions08-01-2013\OpenLearningSolutions\purchase.aspx.cs 70 21 C:\...\OpenLearningSolutions\
这是我的代码:
OLSContainer ols = new OLSContainer();
var reSet = from l in ols.LEVEL_COURSE
join lp in ols.PACKAGES
on new { l.course_ID, l.levelID } equals new { lp.course_ID, lp.level_ID }
select l;
虽然所有四列都是int nullabe类型,但我收到此错误。请帮助我。
答案 0 :(得分:1)
在LINQ表达式中,成员的名称不同,因此类型最终不同,因此C#无法找出两者之间的共同类型。
试试这个。
OLSContainer ols = new OLSContainer();
var reSet = from l in ols.LEVEL_COURSE
join lp in ols.PACKAGES
on new { l.course_ID, l.levelID } equals new { course_ID = lp.course_ID, levelID = lp.level_ID }
select l;
答案 1 :(得分:1)
我通过这种方式从表中选择数据来解决我的问题:
OLSContainer ols = new OLSContainer();
var reSet = (from l in ols.LEVEL_COURSE
from p in ols.PACKAGES
where l.course_ID == p.course_ID && l.levelID == p.level_ID && l.course_ID==courseID
select new { l.levelID, l.levelName }).Distinct();
答案 2 :(得分:0)
如果你正在比较int?例如,你可以将.Value附加到可空属性。