如何使用Entity Framework执行插入查询

时间:2015-07-10 14:03:42

标签: c# sql .net entity-framework

我正在尝试使用Entity Framework执行插入查询。

我有这样的事情:

Context.database.ExecuteSqlCommand("Insert into tableName Values({0},{1},{2}", param1, param2, param3)

但是这会引发错误

  

'@ p1'附近的语法不正确

这是什么'@p1'?

2 个答案:

答案 0 :(得分:7)

在INSERT结束时

你错过了结束。

应该是:

Context.database.ExecuteSqlCommand("Insert into tableName Values({0},{1},{2})", param1, param2, param3)

或者,您可以使用SqlParameter类:

Context.Database.ExecuteSqlCommand(
    "Insert into tableName Values(@id, @firstName, @lastName)",
    new SqlParameter("id", id),
    new SqlParameter("firstName", firstName),
    new SqlParameter("lastName", lastName)
);

答案 1 :(得分:2)

除了显而易见的问题,为什么要编写SQL,在第三个{2}参数之后,似乎缺少一个右括号:

Contex.database.ExecuteSQLCOmmand(@"Insert into tableName Values({0},{1},{2})",param1,param2,param3);

然后指定列名称也是一种好习惯,如下所示:

Contex.database.ExecuteSQLCOmmand(@"Insert into tableName (col1, col2, col3) Values({0},{1},{2})",param1,param2,param3);