int join子句中的一个表达式的类型是不正确的."加入"调用中的类型推断失败

2 c# linq asp.net asp.net-mvc-4

我正在尝试将另一个表中的列连接到现有表,并将其返回到MVC 4中的视图

var q = from accCo in db.AccControls
        join accCom in db.AccCompanies
        on new { accCo.ControlCode } equals
        new { ControlCode = accCom.Code }

        where accCo.ControlCode == Request.QueryString["ControlCode"]
        orderby accCom.Code
        select new Combined{ AccControls = accCo, AccCompoanies = accCom };

return View(q);
Run Code Online (Sandbox Code Playgroud)

但我得到了上述错误

Vas*_*nov 9

如果您加入的任何列都可以为空,则需要将其更改为.Value

on new { accCo.ControlCode } equals
            new { ControlCode = accCom.Code.Value }
Run Code Online (Sandbox Code Playgroud)

或者你可以使用它

var q = from accCo in db.AccControls
    join accCom in db.AccCompanies
    where accCom.Code != null
    on new { accCo.ControlCode } equals
    new { ControlCode = accCom.Code }

    where accCo.ControlCode == Request.QueryString["ControlCode"]
    orderby accCom.Code
    select new Combined{ AccControls = accCo, AccCompoanies = accCom };
Run Code Online (Sandbox Code Playgroud)