C# join子句中某个表达式的类型不正确。调用';时类型推断失败;加入';
我使用下面的查询连接两个表C# join子句中某个表达式的类型不正确。调用';时类型推断失败;加入';,c#,linq,C#,Linq,我使用下面的查询连接两个表 IQueryable<BoaPieceConsole> pieceConsoleQueryable; pieceConsoleQueryable = (from js in rewriteEntity.JobSummaries where js.ProductCode != null
IQueryable<BoaPieceConsole> pieceConsoleQueryable;
pieceConsoleQueryable = (from js in rewriteEntity.JobSummaries
where js.ProductCode != null
join bffd in rewriteEntity.BOAFinalFileDatas
on new { js.JobID, prodCode = js.ProductCode } equals new { bffd.ADFJobID, prodCode = bffd.ProductCode }
where js.ProductCode.Equals(ConsoleConstants.DAMAGED_PROD_CODE, StringComparison.OrdinalIgnoreCase)
&& js.ProcessDate >= startDate
select new DamageConsoleModel
{
JobID = js.JobID,
Productcode = js.ProductCode
});
IQueryable片段控制台eQueryable;
pieceConsoleQueryable=(来自rewriteEntity.JobSummaries中的js)
其中js.ProductCode!=null
在rewriteEntity.BOAFinalFileDatas中加入bffd
在新的{js.JobID,prodCode=js.ProductCode}上等于新的{bffd.ADFJobID,prodCode=bffd.ProductCode}
其中js.ProductCode.Equals(ConsoleConstants.magned_PROD_CODE,StringComparison.OrdinalIgnoreCase)
&&js.ProcessDate>=开始日期
选择new DamageConsoleModel
{
JobID=js.JobID,
Productcode=js.Productcode
});
我已经解决了这个问题,但无法解决这个问题。
JobSummaries表列ProductCode的类型可为Null,但BOAFinalFileDatas的ProductCode不可为Null。因此,联接引发编译时错误,声明:
join子句中某个表达式的类型不正确。调用“Join”时类型推断失败
ProductCode列的数据类型为varchar。
如何修复此问题?我认为您需要更改至少一个组合键的部分名称,以便它们匹配 请看这里: 比如:
on new { JobID = js.JobID, prodCode = js.ProductCode } equals new { JobID = bffd.ADFJobID, prodCode = bffd.ProductCode }
使用
js.ProductCode.Value
和别名bffd.ADFJobID
到JobId
@GertArnold-我得到的字符串不包含值定义
@GertArnold-我的坏,完全没有提到数据类型。也更新了问题主体。