c# - ORA-00936 : missing expression using Entity framework update statement

标签 c# oracle entity-framework

我不熟悉将 ORACLE 与 Entity Framework 5 一起使用。尝试一个简单的更新语句,但它不起作用,我收到错误“ORA-00936:缺少表达式”

Entities context = new Entities();

var Description="UpdateTesting";
var Id = "1";

string UpdateSqlString = @"Update SOURCE Set DESCRIPTION={0} where SOURCEID={1}";

int RowsUpdated = context.Database.ExecuteSqlCommand(UpdateSqlString, Description, Id);

context.SaveChanges();

我也试过下面的方法,还是报同样的错误

 Entities context = new Entities();

 var Description = "UpdateTesting";
 var Id = "1";

 var sql = @"Update SOURCE Set DESCRIPTION = @DESCRIPTION WHERE SOURCEID = @Id";

 int RowsUpdated = context.Database.ExecuteSqlCommand(sql, new OracleParameter("DESCRIPTION", Description),
                                                                  new OracleParameter("Id", Id));
 context.SaveChanges();

我现在已经尝试使用以下语法,但在 ExecuteSqlCommand 之后什么也没有发生,应用程序可能进入了某个无休止的循环

var Description="UpdateTesting";
var SOURCEId = "1";

var sql = "Update SOURCE SET DESCRIPTION = :Description WHERE SOURCEID = :SOURCEId";

 int RowsUpdated=context.Database.ExecuteSqlCommand(
            sql,
            new OracleParameter(":Description", Description),
            new OracleParameter(":SOURCEId", SOURCEId));

如果这有助于解决此问题,我可以提供 SQL 创建表脚本。

有什么想法吗?谢谢

最佳答案

你试过吗?没有冒号

    var Description="UpdateTesting";
var SOURCEId = "1";

var sql = "Update SOURCE SET DESCRIPTION = :Description WHERE SOURCEID = :SOURCEId";

 int RowsUpdated=context.Database.ExecuteSqlCommand(
            sql,
            new OracleParameter("Description", Description),
            new OracleParameter("SOURCEId"   , SOURCEId));

关于c# - ORA-00936 : missing expression using Entity framework update statement,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28045519/

相关文章:

c# - 使用 NUnit 进行单元测试时获得所需/正确的装配路径

oracle - 关于频繁项集的 PL/SQL 问题

sql - 使用 UNION 向 SELECT 语句添加参数会更改记录号

entity-framework - 使用SqlEntityConnection,CLR类型到EDM类型的映射不明确

c# - DbEntityValidationException - 我如何轻松判断导致错误的原因?

c# - 如何判断 Entity Framework 6+ 查询生成的 SQL 是否使用索引?

c# - 我需要每天花好几个小时尽可能快地发送大量 Web 请求。什么是最有效的方法?

c# - 如何随机化两个函数的结果

c# - ListView跳到顶部(ISupportIncrementalLoading)

oracle - 升级 Informix - 切换到 Oracle、Sybase 还是继续使用 Informix?