错误25 join子句中某个表达式的类型不正确。调用“加入”时类型推断失败

时间:2013-01-11 07:51:44

标签: asp.net entity-framework join

我通过在两个表上应用连接从表中获取数据但是我收到此错误:

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类型,但我收到此错误。请帮助我。

3 个答案:

答案 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附加到可空属性。