【发布时间】:2021-07-17 17:34:02
【问题描述】:
我在其中一个表中添加了一个新列,该列的结果取决于其他 2 个列的结果。我进行了更新,以便可以用信息填充现有行,但我还想将 case 语句转换为我的代码的 LINQ 查询。
UPDATE depotProjet.Projets
SET IdPlateformeSecteur =
CASE
WHEN (IdPlateforme = 1 AND IdSecteur = 1) then 1
WHEN (IdPlateforme = 1 AND IdSecteur = 2) then 2
WHEN (IdPlateforme = 1 AND IdSecteur = 4) then 3
WHEN (IdPlateforme = 3 AND IdSecteur = 1) then 4
WHEN (IdPlateforme = 3 AND IdSecteur = 2) then 5
WHEN (IdPlateforme = 3 AND IdSecteur = 4) then 6
WHEN (IdPlateforme = 2 AND IdSecteur = 1) then 7
WHEN (IdPlateforme = 2 AND IdSecteur = 2) then 8
WHEN (IdPlateforme = 2 AND IdSecteur = 4) then 9
End
WHERE IdPlateformeSecteur is NULL;
这就是我想出的:
if (projet.IdPlateforme == 1 && projet.IdSecteur == 1)
{
projet.IdPlateformeSecteur = 1;
}
else if (projet.IdPlateforme == 1 && projet.IdSecteur == 2)
{
projet.IdPlateformeSecteur = 2;
}
else if (projet.IdPlateforme == 1 && projet.IdSecteur == 4)
{
projet.IdPlateformeSecteur = 3;
}
else if (projet.IdPlateforme == 3 && projet.IdSecteur == 1)
{
projet.IdPlateformeSecteur = 4;
}
else if (projet.IdPlateforme == 3 && projet.IdSecteur == 2)
{
projet.IdPlateformeSecteur = 5;
}
else if (projet.IdPlateforme == 3 && projet.IdSecteur == 4)
{
projet.IdPlateformeSecteur = 6;
}
else if (projet.IdPlateforme == 2 && projet.IdSecteur == 1)
{
projet.IdPlateformeSecteur = 7;
}
else if (projet.IdPlateforme == 2 && projet.IdSecteur == 2)
{
projet.IdPlateformeSecteur = 8;
}
else if (projet.IdPlateforme == 2 && projet.IdSecteur == 4)
{
projet.IdPlateformeSecteur = 9;
}
我的搜索给了我选择的例子,但我没有选择。它正在工作,但我想以正确的方式做到这一点。谢谢
【问题讨论】:
-
到目前为止,您发布的只是一堆 If 语句。没有什么关于它的LINQ。您尝试过使用 LINQ 做什么?
-
LINQ 也主要用于选择数据,而不是更新数据,所以你确定你说的是你真正想要的吗?跨度>
-
我知道我这样做的目的绝不是、塑造或形成 LINQ。我想知道在使用 LINQ 时是否有更雄辩的方式来做我所做的事情?对不起,如果我不清楚。
-
不是没有看到 if 语句周围的相关代码来获取数据并“更新”它。
-
对不起,英语不是我的母语,我不确定我理解正确。你还在寻找什么其他代码?
标签: c# sql linq linq-to-sql sql-to-linq-conversion