从EF 6调用的mysql存储过程中的语法错误

时间:2016-05-31 11:57:36

标签: c# mysql asp.net-mvc entity-framework stored-procedures

我正在使用Entity Framework 6从MVC 5应用程序调用存储过程。它抛出了这个错误:

  

您的SQL语法有错误;检查对应于的手册   您的MySQL服务器版本,以便在第1行的'rv_test_param 1'附近使用正确的语法

我的代码是:

var res = Context.Database.SqlQuery<string>("rv_test_param @id", new MySqlParameter("@id", 1)).ToList();

存储过程正常。如果我调用不带参数的停止

像这样:

var redf = Context.Database.SqlQuery<string>("rv_test").ToList();

它也可以正常工作。有没有人知道为什么它不使用参数?

3 个答案:

答案 0 :(得分:3)

语法错误。我来自SQL Server背景,所以我不知道这些语法。这对我有用:

var res = Context.Database.SqlQuery<string>("call rv_test_param(@id)", new MySqlParameter("@id", 1)).ToList();

答案 1 :(得分:0)

app.use(passport.initialize());
passport.use(bearerStrategy)

答案 2 :(得分:0)

您可以用另一种方式来做,例如:

function addNeighbour(node, link) {
    cy.startBatch();
    addNode(link.otherNode.type, link.otherNode.name, link.otherNode.properties);
    cy.add([
      {
        group: 'edges',
        data:
        {
          id: node + ":" + link.type + ":" + link.otherNode.type + ":" + link.otherNode.name,
          source: source,
          target: target,
          type: link.type,
          properties: linkproperties
        }
      }
    ]);
    refreshLayout()
    cy.endBatch();
  }
}

var layoutOpts = {
    name: 'cola',
    refresh: 2,
    edgeLength: 200,
    fit: false
}

function refreshLayout() {
    layout.stop();
    layout = cy.elements().makeLayout(layoutOpts);
    layout.run();
}