表的名称作为SQL中的Variabe(C#参数)

时间:2018-04-03 10:32:42

标签: c# mysql sql parameters

我有一个困难的SQL查询,我不想在Linq上重写它。问题是:我有两个相同的表,我必须根据某些条件使用其中一个。所以,要传递参数(表的名称),我使用它:

List<Variables> lst = db.Database
    .SqlQuery<Variables>(s, new SqlParameter("tableSource", sourceTable))
    .ToList();

我的查询是这样的:

SELECT @tableSource.PlanId,
   @tableSource.PlanSmall AS PlanImg,
   @tableSource.NOb,
...

它不起作用,有人可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

您无法使用SqlParameter。例如,它用于设置WHERE子句中参数的值。您可以考虑使用像

这样的结构
if (someParam.Equals("thisValue")
{
  return "SELECT * FROM thisTable";
} else if (someParam.Equals("thatValue")
{ 
  return "SELECT * FROM thatTable"; 
}