修改来自 this question 的答案稍微,假设我运行这段代码:
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。整数是什么意思? documentation只是说
The result returned by the database after executing the command.
我做了几个测试,如果它修改了一行,它看起来像是 1,如果没有任何改变,它看起来像是 0。返回值是修改的行数吗?
最佳答案
对于大多数数据库,这意味着受命令影响的行数。不过我的理论是,上帝禁止存在这样的事情,数据库供应商可以自由返回任何东西,然后您需要查看特定数据库的文档以了解数字的含义。
关于c# - Database.ExecuteSqlCommand 的返回值是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49861707/