需要将SQL转换为复杂的Linq

需要将SQL转换为复杂的Linq,linq,entity-framework,Linq,Entity Framework,我需要将此SQL转换为Linq,我不知道如何 INSERT INTO @retCluster (HCIS_ID) SELECT HCIS_ID FROM OHCD_EmployeeInfo WHERE ImmediateSupervisor IN (SELECT HCIS_ID FROM @retCluster) AND HCIS_ID NOT IN (SELECT HCIS_ID FROM @retCluster) AND HCIS_Status_ID = 1 LINQ不支持在数

我需要将此SQL转换为Linq,我不知道如何

 INSERT INTO @retCluster (HCIS_ID)
 SELECT HCIS_ID FROM OHCD_EmployeeInfo 
 WHERE ImmediateSupervisor IN (SELECT HCIS_ID FROM @retCluster)
 AND HCIS_ID NOT IN (SELECT HCIS_ID FROM @retCluster)
 AND HCIS_Status_ID = 1

LINQ不支持在数据库中插入记录。 如名称所示,仅用于查询目的(目前);您不能删除、更新或插入。从数据库中提取实体后,需要依靠
DbContext
ObjectContext
(EF)或
DataContext
(L2S)表功能对映射到数据库的表执行这些操作

实体框架有一些扩展,允许基于lambda的功能通过传递表达式来执行更新或删除命令


同样在您的情况下,您的上下文需要了解变量表
@retCluster
,这是不可能的。您仍然可以使用
DbContext.Database.SqlQuery
方法,使用DbContext连接在数据库中执行任何基于字符串的命令。

那么临时表
@retCluster
是如何填充的呢?