需要将SQL转换为复杂的Linq

时间:2013-11-07 12:04:37

标签: 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

1 个答案:

答案 0 :(得分:1)

LINQ不支持在数据库中插入记录。 顾名思义只是为了查询目的(现在);您无法删除,更新或插入。您需要依赖DbContextObjectContext(EF)或DataContext(L2S)表功能,在从您的数据库中提取实体后,对映射到数据库的表执行这些操作数据库中。

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

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