我想在LINQ表达式中使用包含的表时收到异常:
查询实现期间的异常。该参数未绑定在指定的LINQ to Entities查询表达式中。
使用的代码:
var tools = toolSpecTable.Where(t => t.Operation_Id == dbOperation.Id)
.Include(t => t.ToolDefinitionId);
foreach (var dbTool in tools)
{
if (dbTool.ToolDefinitionId != null)
{
var toolObject = toolTable
.Where(toolObj => toolObj.ToolDefinition_Id == dbTool.ToolDefinitionId.Id)
.FirstOrDefault();
if (toolObject != null)
{ ... }
}
}
请注意,声明toolObject
变量时发生错误。
在LINQ表达式中使用它之前,我通过将dbTool.ToolDefinitionId.Id
存储到变量中来使用解决该异常的技巧:
var toolDefnitionId = dbTool.ToolDefinitionId.Id;
var toolObject = toolTable
.Where(toolObj => toolObj.ToolDefinition_Id == toolDefnitionId)
.FirstOrDefault();
if (toolObject != null)
{ ... }
知道为什么吗?