![](/img/trans.png)
[英]What is the correct syntax for using Database.ExecuteSqlCommand with parameters on mysql?
[英]What is the return value of Database.ExecuteSqlCommand?
稍微修改这个问题的答案,假设我运行以下代码:
public int SaveOrUpdate(MyEntity entity)
{
var sql = @"MERGE INTO MyEntity
USING
(
SELECT @id as Id
@myField AS MyField
) AS entity
ON MyEntity.Id = entity.Id
WHEN MATCHED THEN
UPDATE
SET Id = @id
MyField = @myField
WHEN NOT MATCHED THEN
INSERT (Id, MyField)
VALUES (@Id, @myField);"
object[] parameters = {
new SqlParameter("@id", entity.Id),
new SqlParameter("@myField", entity.myField)
};
return context.Database.ExecuteSqlCommand(sql, parameters);
}
这实际上将运行并返回一个int。 int是什么意思? 该文件只是说
执行命令后,数据库返回的结果。
我做了几次测试,如果修改了一行,它看起来是1,如果没有改变,它看起来是0。 返回值是否修改了行数?
对于大多数数据库,这意味着该命令影响的行数。 但是我认为,上帝禁止这种事情存在,数据库供应商可以自由退还任何东西,然后您需要查看特定数据库的文档中数字的含义。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.