C# join子句中某个表达式的类型不正确。调用';时类型推断失败;加入';
我目前正在尝试将一列从另一个表连接到现有表,并将其返回到MVC4中的视图C# join子句中某个表达式的类型不正确。调用';时类型推断失败;加入';,c#,asp.net,linq,asp.net-mvc-4,C#,Asp.net,Linq,Asp.net Mvc 4,我目前正在尝试将一列从另一个表连接到现有表,并将其返回到MVC4中的视图 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.QuerySt
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);
但是我得到了上面的错误试试看
var q = from accCom in db.AccCompanies
let accCo = db.AccControls.FirstOrDefault(x => x.ControlCode == accCom.Code)
where accCo.ControlCode == Request.QueryString["ControlCode"]
&& accCo != null
orderby accCom.Code
select new Combined { AccControls = accCo, AccCompoanies = accCom };
如果您加入的任何列都可以为null,则需要将其更改为.Value
on new { accCo.ControlCode } equals
new { ControlCode = accCom.Code.Value }
或者你可以用这个
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 };
也许是
请求。QueryString[“ControlCode”]
尝试在linq qry外贴花,如下所示:
var code = Request.QueryString["ControlCode"];
var q = from accCo in db.AccControls
join accCom in db.AccCompanies
on new { accCo.ControlCode } equals
new { ControlCode = accCom.Code }
where accCo.ControlCode == code //EDIT
orderby accCom.Code
select new Combined{ AccControls = accCo, AccCompoanies = accCom };
accCo.ControlCode或accCom.Code是否可以为空?您是否尝试过在accCo.ControlCode==accom.Code上使用=?或者这些类型不同?accCo.ControlCode不允许空值。accCom.Code确实允许为空。请看我下面的答案:)当然,它们应该来自同一类型才能做到这一点。为什么这会有帮助?这样就消除了连接错误,谢谢,但现在我得到了:String不包含Value的定义,并且找不到接受String类型的第一个参数的扩展方法值,那么您不应该使用.Value,而是筛选空记录